プログラミングのお題スレ Part19

■ このスレッドは過去ログ倉庫に格納されています
2020/11/30(月) 00:04:05.21ID:TF2Czp0y
プログラミングのお題スレです。

【出題と回答例】
1 名前:デフォルトの名無しさん
  お題:お題本文

2 名前:デフォルトの名無しさん
  >>1 使用言語
  回答本文
  結果がある場合はそれも

【ソースコードが長くなったら】 (オンラインでコードを実行できる)
https://ideone.com/
http://codepad.org/
http://compileonline.com/
http://rextester.com/runcode
https://runnable.com/
https://code.hackerearth.com/
http://melpon.org/wandbox
https://paiza.io/

宿題は宿題スレがあるのでそちらへ。

※前スレ
プログラミングのお題スレ Part18
https://mevius.5ch.net/test/read.cgi/tech/1594702426/
2021/04/03(土) 08:17:43.34ID:McIcD2xB
>>566
予定では 2.5系は今年の3月末で公式サポート切れですので早めの移行をおすすめします
https://www.ruby-lang.org/ja/news/2020/04/05/support-of-ruby-2-4-has-ended/
2021/04/03(土) 20:31:52.16ID:HCHjqGIn
>>560
Java
https://paiza.io/projects/pfDHDvTyLKx2jlDunhjJSg
2021/04/04(日) 01:19:15.65ID:TsxWz5pg
>>518
Java
https://paiza.io/projects/uS8dmQmZ-tOGGtvCYbGxsQ
2021/04/04(日) 04:15:17.77ID:i8ul4qcC
>>560
Perl でこんな感じでできた。(1行目はbashのコマンドラインからの入力。2行目が出力)

echo 'abあいう1あいう23あいうxyz' | perl -ne 'chomp;@d=split/あいう/;shift(@d);print "[" . join(", ", map { qq("あいう$_") } @d) . "]\n"'
["あいう1", "あいう23", "あいうxyz"]
2021/04/05(月) 20:31:30.41ID:o12owsbD
「像は鼻が長い」でグクった
なるほど気付かなかった
2021/04/06(火) 01:25:45.23ID:zN4gWhl4
次の検索結果を表示しています: 象は鼻が長い
2021/04/06(火) 13:58:55.66ID:ounqm2YM
数学板より
お題:足して9
各桁の和が9である自然数を小さい物順に並べる
9,18,27,36,45,54,63,72,81,90,108,117....
n番目を求める関数を実装せよ

入力:12
出力:117

入力:12345
出力:100204200

入力:123456789
出力:30000100000100000021000001000
2021/04/06(火) 15:10:20.38ID:8eKBKzx+
プロおじのオナニースレ
2021/04/06(火) 15:49:51.64ID:5jp1nWlk
プロおじってなんだ?
2021/04/06(火) 15:59:26.26ID:sYlI8eNJ
数学板の荒らし
2021/04/06(火) 16:27:52.36ID:vlqQXHl9
>>573 Perl
https://ideone.com/CQvj02
2021/04/06(火) 16:52:22.76ID:sYlI8eNJ
>>577
なるほど
うまいな
2021/04/06(火) 16:55:57.07ID:RTS/XrJR
数学板では
プログラム好き好きおじさんと
プログラム怖い怖いおじさんが
意味の無い罵り愛を展開しているのだそうな
5809
垢版 |
2021/04/07(水) 01:03:14.39ID:lZ4PPQGS
意味のない愛か…
イサキが大漁そうだな
アホ草
2021/04/07(水) 03:29:39.17ID:nO5/cs4F
プログラムこわい

落語かよ
2021/04/10(土) 19:40:12.57ID:Sahzdf8n
お題: かなとアルファベットと数字からなる文字列をモールス信号に変換するプログラム。ただし、長音を「−」、短音を「・」で表し、モールス信号に変換できない文字は下駄文字(〓)に置き換える。全角・半角の両方に対応すること。

参考:
https://ja.m.wikipedia.org/wiki/%E3%83%A2%E3%83%BC%E3%83%AB%E3%82%B9%E7%AC%A6%E5%8F%B7
2021/04/11(日) 01:48:43.24ID:yXhW6xoe
>>582 Ruby
https://ideone.com/hwQ24K
2021/04/11(日) 04:58:14.74ID:b01EJxrZ
モールスか。前にもあったな。そんなお題。
その時は確か音まで出す気合の入った回答をした人も居たと思った。
585デフォルトの名無しさん
垢版 |
2021/04/11(日) 18:30:35.89ID:b01EJxrZ
お題
>>582と同じでモールス信号作成。但し、定義ファイルに文字ごとに対応する信号を入れておきそれを指定して動く方式。(これにより言語が関係なくなる)。
日本語用定義ファイルを指定して動かせばそれに従って日本語での変換が行われ、英語用のを指定すれば英語での変換になるようにする。

プログラムと定義ファイルを最低一つ作ること。定義ファイルの内容は定義に従って正しく変換がされるかの確認が出来る程度で良い(例えば数字の変換だけでも良い)。
2021/04/11(日) 18:33:36.97ID:b01EJxrZ
定義ファイルのエンコードはご自由に。でも UTF-8 にしておくとあちこちで使えて良いかも知れない。(Javaとか自動変換してくれるやつだと漢字も1文字扱い出来て楽だし)。
2021/04/11(日) 19:48:32.73ID:yXhW6xoe
>>585 Ruby
https://ideone.com/Sq0djW
2021/04/11(日) 21:31:44.93ID:xF2ZqhuB
お題: UTF-8のCSVファイル(BOMなし)をテキトーにJSONファイルに変換せよ。
2021/04/11(日) 21:37:50.73ID:xF2ZqhuB
お題: 現在のディレクトリに連番のファイル(000.txt〜999.txt)を作成せよ。
2021/04/11(日) 21:49:03.91ID:xF2ZqhuB
お題: 現在のディレクトリの中から「jewel」と書かれたバイナリファイルを探索せよ(ファイル名およびファイルの中身)。大文字小文字、全角半角を区別すること。
2021/04/11(日) 21:49:37.43ID:oovdLEo5
>>589 コマンドプロンプト直打ち
>for /L %X in (0,1,9) do @for /L %Y in (0,1,9) do @for /L %Z in (0,1,9) do @echo.%X%Y%Z>%X%Y%Z.txt
592デフォルトの名無しさん
垢版 |
2021/04/11(日) 23:08:08.91ID:b01EJxrZ
>>590
grep jewel *
593デフォルトの名無しさん
垢版 |
2021/04/12(月) 00:41:18.68ID:PERQzDfp
>>589
Linux で bash のコマンドラインでこうやったらできた。

printf '%03d.dat\n' $( seq 0 999 ) | xargs touch
2021/04/12(月) 00:42:24.60ID:PERQzDfp
ごめん。 .dat じゃなくて .txt か。
まあでもその部分だけ直せばできる。
2021/04/12(月) 02:59:02.12ID:McWTq0EP
推奨NGワード: 蟻
596デフォルトの名無しさん
垢版 |
2021/04/12(月) 03:54:37.45ID:PERQzDfp
>>585
Kotlin
https://paiza.io/projects/6WrD2npgz-YpNUrxa2j34g
597デフォルトの名無しさん
垢版 |
2021/04/12(月) 04:32:56.67ID:PERQzDfp
関係ないけどDMMブックスの7割引きは凄いな。高い本バスケットに入れまくりだ。
2021/04/12(月) 20:48:48.64ID:AVNmNVln
お題: マルチスレッドを使うと処理完了が早くなる例を示しなさい。※CPUはマルチコアを前提とする。
599デフォルトの名無しさん
垢版 |
2021/04/13(火) 05:15:20.29ID:RNIiO4nm
>>589 Ruby
("0000".."9999").each{|x|open(x+".txt","w").close}
2021/04/15(木) 20:54:26.73ID:IlyHVFTA
お題: ここに3つのタンクA,B,Cがある。それぞれの最大容量は20L, 15L, 10Lである。初め、Aには水15Lが入っていて、Bには水10L入っていて、
Cは空っぽだ。重力により、水は2L/sの速さでAからBに流入し、3L/sの速さでBからCに流入する。
このような水の流れとタンク内容量の変化を再現してCがいっぱいになったときのAとBの内容量を求めよ。
2021/04/15(木) 21:05:03.04ID:PVf346K4
>>600 訂正と追記。
s/重力により/ポンプにより/

方程式は使ってはならない。必ずシミュレーションなどで再現すること。
2021/04/16(金) 00:18:27.57ID:fILOfU4Q
>>600
その「水タンク-システム」=水時計って、水位差と流出量が比例するのほうがおもしろいのでは?
2021/04/16(金) 00:35:37.34ID:b5uchwAM
受験の頻出問題で排出される水量が√水位に比例するというのがあった
大学入ってやっとベルヌーイの定理というものだと知った
604デフォルトの名無しさん
垢版 |
2021/04/16(金) 14:13:28.80ID:jtvNbV+8
バカみたいな受験数学教えてないでストレートにベルヌーイの定理教えりゃいいのに
ガキに能力キャップを付けて伸びないようにバカはバカのまんまでいいとする教育法が全部悪い
そろそろ文科省は解体した方がいい
2021/04/16(金) 19:04:19.26ID:xRzMNGAE
>>600 Ruby
https://ideone.com/Mo6f3p
2021/04/16(金) 20:35:12.47ID:WHFzsZ51
お題: 計算可能な未知の関数f(x)が与えられる。x=-5〜+5において数値微分してf(x)の導関数の近似グラフを描画せよ。

(1) f(x)=x**2.
(2) f(x)=3*sin(x).
(3) f(x)=sqrt(abs(x)).
2021/04/16(金) 21:05:20.24ID:WHFzsZ51
なお、グラフィックスが使えない言語では、テキストによる「仮想画面」を使って描画すること。
2021/04/16(金) 21:12:44.84ID:DiXcAXcy
>>600 Scala
https://scalafiddle.io/sf/Si1Ia0o/0
2021/04/16(金) 22:53:37.77ID:zdKOg7Co
>>604
まともな学校では数学好きな奴は高校の内から高木貞二読んだりしてたぞ
2021/04/17(土) 07:31:04.20ID:lD3utFKx
計算不能な既知の関数て何?
611デフォルトの名無しさん
垢版 |
2021/04/17(土) 09:03:16.04ID:3IkVvJ6C
>>604
勉強したいなら学校なんか無視して自分でどんどん勉強しちゃって良いんだよ。
学校行かなきゃ情報が入手困難で学習できないなんて時代はとうの昔に終わってるんだし今ではネットもある。
612デフォルトの名無しさん
垢版 |
2021/04/17(土) 11:28:29.30ID:Mked9+jN
中受算数をやる時間が無駄じゃん
そこで解析が出るならまだしも

ならストレートに連立方程式やら積分やらを出せばいい
2021/04/17(土) 12:39:29.81ID:3vy+q5kN
自分でやれば?としか思わないんだが
614デフォルトの名無しさん
垢版 |
2021/04/17(土) 21:59:24.27ID:sbDPbhaa
お題
同じ形の洗濯バサミの足を挟んでつなげてリングを作る。
最初の洗濯バサミの先頭から次のせんたくばさみの先頭までの長さAをとする。
以下同様につなげていくとすると洗濯バサミは何個必要だろうか?
615デフォルトの名無しさん
垢版 |
2021/04/18(日) 00:18:58.62ID:3FSrV0IS
360 / θ 個
616デフォルトの名無しさん
垢版 |
2021/04/18(日) 03:37:38.28ID:MhI7DTLG
>>614訂正
洗濯バサミを3個つないだ状態で
最初の洗濯バサミの先頭から2番目の洗濯バサミの先頭までの長さをAとする。
2番目の先頭から3番目の先頭までをAとする。
1番目の先頭から3番目の先頭までをBとする。
2021/04/18(日) 06:09:43.55ID:RQ5SqrPJ
絵を描いた方が分かりやすい
2021/04/18(日) 15:55:26.09ID:oZ702Pek
数学の問題やん?
計算機を使って何をしろと?
A,Bが入力されたときに答え出せばいい?
2021/04/18(日) 16:11:00.76ID:oZ702Pek
>>616
haskell
https://ideone.com/9OCoeZ
2021/04/20(火) 14:33:35.54ID:fjai9OEL
お題: 依存関係のあるソート。与えられたいくつかの項目について、各項目ごとに依存関係が指定される。依存対象が先に来るように項目のリストをソートしなさい。
依存関係に循環がある場合は「ERROR」と出力しなさい。依存関係がない場合は名前の順でソートしなさい。

例1) {A, B, C}
AはB, Cに依存する。
BはCに依存する。
Cは何にも依存しない。

例2) {A, B, C, D}
AはCに依存する。
BはDに依存する。
CはB, Dに依存する。
Dは何にも依存しない。
2021/04/20(火) 14:57:48.16ID:fjai9OEL
例3) {A, B, C, D, E}
AはEに依存する。
BはDに依存する。
CはBに依存する。
Dは何にも依存しない。
EはBに依存する。
2021/04/20(火) 19:18:30.05ID:4HfXomGv
例ってそれぞれの入力してでどう言う出力なのか答え出さないと例にならんやん?
2021/04/20(火) 20:00:19.11ID:fjai9OEL
>>622
例1の出力) (C, B, A).
例2の出力) (D, B, C, A).
例3の出力) (D, B, C, E, A).
2021/04/20(火) 20:07:07.92ID:fjai9OEL
全順序じゃないから、単純なソートアルゴリズムじゃダメみたいだね。
2021/04/20(火) 20:14:12.39ID:fjai9OEL
https://qiita.com/nekonibox/items/c1c7f4d1ad1695967e39
ご参考に。
626608
垢版 |
2021/04/20(火) 23:18:11.98ID:F5cpVo8A
>>600 Scala
https://scastie.scala-lang.org/527l8E3KT3SbWA4P7jOv0g
2021/04/21(水) 00:20:12.53ID:BjBFMDAR
>>620
haskell
https://ideone.com/3eleC6
2021/04/21(水) 04:35:47.26ID:BjBFMDAR
>>620
コレでよかった
haskell
https://ideone.com/kcgnWx
2021/04/21(水) 09:20:40.26ID:nkly2OdJ
>>628
アルゴリズムを簡単に解説してくれますか?
すみません。
2021/04/21(水) 11:28:35.43ID:feIJLTYL
例えば>>821の時は順序の生成元が
E<A, D<B, B<C, B<E
この中で先頭に持ってきて良いものを探す
それはつまり「何かに依存していないもの」
この状態ではA,B,C,Eは何かに依存しているのでダメ
よってこの場合Dしかない
残りA,B,C,Eの順序を決める
その際順序の生成元からD<Xの形は取り除く
つまり
E<A, B<C, B<E
依存していないものはBのみなのでBが2番目
残りA,C,Eで順序の生成元はE<Aのみ
依存してないのはC,Eでどちらがきても良い

数学的には“何かに依存していない”はその“半順序”における“極小元”
そして極小元になり得る必要十分条件がまさに「順序の生成系の中でそれより小さいものがないもの」、すなわち「何かに依存してないもの」とわかる(証明も簡単)
そしてこの作業に於いて順序の生成系にループが有れば、例えばx<y,y<z,z<xのようなものが有ればx,y,zは最後まで取り除かれず、最後には「まだ元は残ってるけど極小元なし」の状態に到達してしまうのでその時点でerror判定して終了すれば良い
2021/04/21(水) 11:44:47.65ID:nkly2OdJ
>>630
お見事です。ありがとうございます。
2021/04/21(水) 12:03:04.18ID:v7jA28gl
お題が気持ち悪い

単に有向グラフの辺となるものだけ指定すれば良いのに
依存とか書いちゃうから以下みたいな間接依存が許されない雰囲気

AはBに依存
BはCに依存
2021/04/21(水) 19:33:37.67ID:tmGizupL
蟻野郎が順序集合理解してるとも思えない。
2021/04/21(水) 19:35:00.12ID:/BbfB4Z5
>>631
お前全然分かってないだろ
理解できないくせに聞くな
2021/04/21(水) 19:48:52.11ID:Y7fj3JnX
順序集合の定義自体は超簡単じゃね?
順序集合の定理なんか使わないから順序集合なんて言葉を使う必要もないけど

アルゴリズム的には
極大(極小)元の中で名前順の先頭である元を取り出す
を繰り返すだけで良い
取り出せなくなってまだ残っていたらERROR

>>630みたいに無駄に長く説明しなくて良い
2021/04/21(水) 19:59:05.72ID:tmGizupL
順序集合真面目にやるなら集合と位相について学ぶ必要があるわけで
637デフォルトの名無しさん
垢版 |
2021/04/21(水) 20:12:32.68ID:rPf7kV48
そりゃーC++には半順序がバンバン出てくるから選ばれた人間向けの言語だよ。
2021/04/21(水) 22:08:22.58ID:OiYnhzgp
>>634
ちゃんと理解して実装したぜ。
https://github.com/katahiromz/OleBow/commit/f65c774b625385e855971adb1275de1fd6ebee0c

循環参照の例がうまくいかないけど。
// :: IBindCtx: IRunningObjectTable
// :: IEnumMoniker: IMoniker
// :: IMoniker: IBindCtx
// :: IMoniker: IEnumMoniker
// :: IRunningObjectTable: IEnumMoniker
// :: IRunningObjectTable: IMoniker
// :: PartitionMoniker: IMoniker
// :: SoapMoniker: IMoniker
ポインタ型とかは後回しでいっかな。
2021/04/22(木) 06:53:19.23ID:fMSh/hUg
俺ももっと勉強しないとなあ
2021/04/22(木) 07:08:36.76ID:DXDf8hNh
>>620 Ruby
# Array

rule = []
while gets
break unless m = /^\s*(\w)は(\w)?(?:,\s*(\w))*/.match( $_ )
rule << m.to_a[1..] - [nil]
end
solution = []
loop {
free = []
break if rule.delete_if{|a| a.size == 1 && free << a[0] && solution << a[0] }.empty?
free.each{|d| rule.each_index{|i| rule[i] -= [d] } }
}
puts (rule.empty?)? "(#{solution.join(', ')})." : "ERROR"
2021/04/22(木) 07:09:10.65ID:DXDf8hNh
>>620 Ruby
# Bit演算

rule = []
while gets
break unless m = /^\s*([A-Z])は([A-Z])?(?:,\s*([A-Z]))*/i.match( $_ )
rule << [ m[1].upcase, m.to_a[2..].inject(0){|r,c| (c)? r | (1 << c.upcase.ord - ?A.ord) : r } ]
end
solution = []
loop {
free = []
break if rule.delete_if{|a| a[1] == 0 && free << a[0] && solution << a[0] }.empty?
free.each{|d| rule.each_index{|i| rule[i][1] &= ~ (1 << d.ord - ?A.ord) } }
}
puts (rule.empty?)? "(#{solution.join(', ')})." : "ERROR"
2021/04/22(木) 20:40:45.65ID:euTe4E7l
お題
JSONでシリアライズされた未知のm×nの行列が与えられる。
転置行列を返せ。転置行列はシリアライズされていなくてもよい。

入力
"[[1,2],[3,4]]"
出力
[[1,3],[2,4]]
2021/04/23(金) 05:15:31.62ID:dol38sZT
>>642 Ruby

require "json"
p JSON.parse(gets).transpose # => [[1, 3], [2, ,4]]
2021/04/23(金) 07:10:55.59ID:M88Kc634
当然transpose標準で用意されてる言語はそうなるわなw
645デフォルトの名無しさん
垢版 |
2021/04/23(金) 13:43:38.22ID:Vuss2QH6
>>642 J

smoutput |: ". @ }: @ }: ;. _1 }. stdin ''
入力
[[1,2,3].[4,5,6]]

出力
1 4
2 5
3 6
2021/04/27(火) 15:35:20.99ID:CrWxBL6F
お題: コマンドラインで動作するエクセルもどきを作れ。入力テキストの中身に特定の形式の「フィールド」(field: 欄)を埋め込んでおく。今回はフィールドは以下のような形式で表現される。

(1) {{=数式}}
(2) {{フィールド名:文字列}}
(3) {{フィールド名:=数式}}

フィールドは{{ }}で囲んだ文字列で指定される。
数式にはフィールド名を変数とする式を指定できる。フィールド名は半角英数字の組み合わせとする。
式は少なくとも、丸カッコと、整数の四則演算と、整数から文字列への変換と、文字列の連結をサポートすること。
入力テキストのそれぞれのフィールドを評価後の値に置き換えたテキストを出力せよ。フィールドの循環参照や式のエラーがあった場合はその場所に「ERROR」と出力せよ。
その他の仕様についてはエクセルをできる限りまねること。
2021/04/27(火) 15:52:00.73ID:CrWxBL6F
>>646 追記。
フィールド名は英字で始まるものとする。

(入力例)
こんにちは、{{NAME:蟻人間}}さん。
今年は{{:=Y}}年です。来年は{{:=Y+1}}年です。

A={{A:=1}}.
B={{B:=2}}.
A+B+4={{=A+B+4}}.
A*B-2={{=A*B-2}}.

日付: {{Y:=2021}}年{{M:=4}}月{{D:=27}}日
{{:="<"&NAME&">"}}
2021/04/27(火) 16:21:47.75ID:CrWxBL6F
>>647 さらに追記。
{{=数式}}と{{:=数式}}は同じように解釈すること。
2021/04/27(火) 16:53:41.78ID:B18ZzSzj
{{数式}}でいいだろセンスねぇな
2021/04/27(火) 17:02:02.42ID:CrWxBL6F
>>649
代入文か代入式を許容することか。{{A=3}}
そっちの方がいいかもね。

エクセルは数式の先頭で=を書いてるだけで、それ以外に代入式や代入文はなかったはず。
2021/04/27(火) 17:08:35.63ID:CrWxBL6F
>>646 お題を書き直します。

お題: コマンドラインで動作するエクセルもどきを作れ。入力テキストの中身に特定の形式の「フィールド」(field: 欄)を埋め込んでおく。今回はフィールドは以下のような形式で表現される。

(1) {{数式}}
(2) {{フィールド名=数式}}

フィールドは{{ }}で囲んだ文字列で指定される。
数式にはフィールド名を変数とする式を指定できる。フィールド名は英字で始まる半角英数字の組み合わせとする。
式は少なくとも、丸カッコと、整数の四則演算と、値の比較と、整数から文字列への変換と、文字列の連結をサポートすること。等号は二文字の==とする。
入力テキストのそれぞれのフィールドを評価後の値に置き換えたテキストを出力せよ。フィールドの循環参照や式のエラーがあった場合はその場所に「ERROR」と出力せよ。
2021/04/27(火) 17:10:52.46ID:CrWxBL6F
>>651

(入力例)
こんにちは、{{NAME=蟻人間}}さん。
今年は{{Y}}年です。来年は{{Y+1}}年です。

A={{A=1}}.
B={{B=2}}.
A+B+4={{A+B+4}}.
A*M-2={{A*M-2}}.

日付: {{Y=2021}}年{{M=4}}月{{D=27}}日
{{"☆ "&NAME&" ☆"}}
2021/04/27(火) 20:20:55.02ID:MrWPWVr1
連投死ねクソ蟻
お前に来年は来ねえよ
2021/04/27(火) 22:28:29.02ID:CrWxBL6F
>>653
くっさ、くっさわらたんよ。ははは。

お題: 5chに粘着して、トリップ付きのコテハンを罵倒し続けるボットを作れ。
2021/04/27(火) 22:30:28.43ID:CrWxBL6F
人間がボットみたいなことやってたらカバみたいだね。ほんとほんと。
2021/05/03(月) 17:08:04.28ID:meUcD9ks
お題
ファイルパスを入力として受け取り、そのサブパスをすべて出力してください

入力: A/B/B/B
出力:
A
A/B
A/B/B
A/B/B/B
2021/05/03(月) 19:31:00.21ID:vyn1ULyt
>>656 Ruby

'A/B/B/B'.gsub(/.+?(?<=\/|$)/).reduce(''){|s, a|p s + a}

# => "A/"
"A/B/"
"A/B/B/"
"A/B/B/B"
2021/05/03(月) 20:05:34.50ID:vJY6tWsE
>>656
haskell

import Data.List

subPathes p = [ str |
str' <- tail $ inits $ p ++ "/",
last str' == '/',
let str = ( reverse $ inits str' ) !! 1 ]

main = mapM print $ subPathes "A/B/B/B"
659デフォルトの名無しさん
垢版 |
2021/05/03(月) 22:24:37.21ID:v5K6mFSj
>>656 C
char *str = "A/B/B/B";
int i = 0;
while (str[i]) {
if (str[i] == '/') {
char c[i + 1];
memcpy(c, str, i);
c[i] = 0;
printf("%s\n", c);
}
i++;
}
printf("%s\n", str);
2021/05/03(月) 22:28:25.61ID:Fl247JAk
>>656 Ruby
gets.split( ?/ ).inject( [] ){|r,d| (r << d).tap{|t| puts t * ?/ } }
2021/05/03(月) 23:35:00.95ID:ED/pHj/W
python

import sys
from pathlib import PurePath

for x in PurePath(sys.argv[1]).parents: print(x)
662デフォルトの名無しさん
垢版 |
2021/05/04(火) 01:17:51.79ID:BGUDbBhh
>>656
Kotlin
https://paiza.io/projects/KhmBe1ysOa3PIaPX7xJkDg

最初は再帰でやろうと思ったけど止めて、Kotlin らしく拡張プロパティ作って実現した。
663デフォルトの名無しさん
垢版 |
2021/05/04(火) 02:03:51.93ID:BGUDbBhh
文字列をPATHの区切り文字で後ろから検索しないで先頭から検索しても同じと気付いたのでこっそり直した。
664デフォルトの名無しさん
垢版 |
2021/05/04(火) 18:30:10.36ID:0HSekrvc
>>656 Ruby
def f(s)
a=s.split("/")
(0..a.size-1).map{|i| a[0..i].join("/")}
end
p f("A/B/B/B")
実行結果
["A", "A/B", "A/B/B", "A/B/B/B"]
2021/05/06(木) 18:06:27.01ID:b7Mkjg0R
>>656
Elixir

list = String.split( "a/bc/d", "/" ) # 分割

# 第2引数は、蓄積変数の初期値
%{ list: result } = Enum.reduce( list, %{ list: [ ], word: "" }, fn( str, acc )->

tmp_str = acc.word <> str # 文字だけを連結する。/ は連結しない

acc = %{ acc | list: acc.list ++ [ tmp_str ] } # 連結
acc = %{ acc | word: tmp_str <> "/" } # 連結
acc
end )

IO.inspect result
#=> ["a", "a/bc", "a/bc/d"]
2021/05/06(木) 18:47:12.53ID:wT5/oYmn
a="ko/koh/oreo/n/eone"
['/'.join(a.split('/')[0:i+1]) for i in range(len(a.split('/')))]
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況