[過去ログ] プログラミングのお題スレ Part17 (1002レス)
1-

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
55: 2020/03/28(土)01:08 ID:ngUeRIaE(2/2) AAS
やっぱやめた。
よく考えたら>>53のコードに重複削除追加するだけだった
56: 2020/03/28(土)09:55 ID:YBto5Ud7(1) AAS
>>52 Ruby

%w[1 1-3 1,3 1,3-5].each{|e| p eval "[#{e.gsub(/(\d+)-/, '*\1..')}]"}

# => [1]
[1, 2, 3]
[1, 3]
[1, 3, 4, 5]
57: ◆QZaw55cn4c 2020/03/28(土)10:17 ID:WJROMx30(1) AAS
>>52 >>54
既出
= 2chスレ:tech
2chスレ:tech
58
(1): 2020/03/28(土)11:14 ID:VFdWLa/U(1/2) AAS
>>52 Perl5

$"=',';
for $a (<DATA>) {
 $a =~ s/-/.../;
 @s = eval $a;
 print "[@s]\n";
}
__DATA__
1
1-3
省8
59
(1): 2020/03/28(土)11:21 ID:VFdWLa/U(2/2) AAS
>>58 Perl5 ちょっと修正

$"=',';
for $a (<DATA>) {
 $a =~ s/-/.../g;
 @s = sort{$a<=>$b} eval $a;
 print "[@s]\n";
}
__DATA__
1
1-3
省8
60: 2020/03/28(土)18:22 ID:ssy5u0i6(1/2) AAS
>>52
Java
外部リンク:paiza.io
61
(3): 2020/03/28(土)18:24 ID:ssy5u0i6(2/2) AAS
お題:レス番リストを安価に変換せよ

例:
[1] -> "1"
[1,2,3] -> "1-3"
[1,3] -> "1,3"
[1,3,4,5] -> "1,3-5"
62: 2020/03/28(土)19:38 ID:RLgHfGbj(1) AAS
前者は2ch browserで使えるけど後者はそうじゃないね
63: 2020/03/28(土)23:41 ID:X4tW2giy(1) AAS
まーたやらな言い訳かー
やる気ねーなw
64: 2020/03/29(日)10:50 ID:ACisvDeP(1) AAS
>>61 js

let レス番リスト=[1,3,4,5];
let 先頭レス番=レス番リスト[0];
let 安価="";
for(let イ=0;イ<レス番リスト.length-1;イ++){
if(レス番リスト[イ]+1!=レス番リスト[イ+1]){
安価+=レス番リスト[イ]==先頭レス番?先頭レス番+",":先頭レス番+"-"+レス番リスト[イ]+",";
先頭レス番=レス番リスト[イ+1];
}
}
省3
65
(1): 2020/03/29(日)14:05 ID:kU1QBoxf(1) AAS
>>61 Perl5 (もう少しスマートな書き方はあるかもしれないが…)

for (qw{[1] [2,3] [1,2,3] [1,3] [1,3,4,5]}) {
 @a = /(\d+)/g;
 %h = map{$_ => $_} @a;
 @b = map{$h{$_}//','} 1..1000;
 $"=','; $b = "@b";
 $b =~ s/^,*(.+?),*$/$1/;
 @c = split /,,+/, $b;
 @d = map{[eval]} @c;
 @e = map{@$_ > 2 ? "$$_[0]-$$_[-1]" : "@$_"} @d;
省9
66: 2020/03/29(日)18:03 ID:5iH4CTSz(1/2) AAS
なにやってるのか全くわからんw
67: 2020/03/29(日)18:46 ID:CipzEZQ7(1) AAS
@a = /(\d+)/g; … 文字列から数値だけを抽出しリスト変数@aに格納、たとえば文字列が"[1,3,4,5]" の場合@aは(1, 3, 4, 5)

%h = map{$_ => $_} @a; … 変数@aのリスト例えば(1, 3, 4, 5)を入力として値対値ハッシュ {1=>1 3=>3 4=>4 5=>5}を作り変数%hとする

@b = map{$h{$_}//','} 1..1000; … 1〜1000までの数値に対しハッシュ%hを参照し値があればその値、無ければ','文字のリストを生成して変数@bに格納、上記{1=>1 3=>3 4=>4 5=>5}の場合はこんな感じ
#  1 2 3 4 5 6 7 8 9 … 1000
@b: 1 , 3 4 5 , , , , … ,

$"=','; $b = "@b"; … 上記リスト@bを元に要素を区切り文字','で繋いだ文字列を作り変数$bに設定
上記@b: 1 , 3 4 5 , , , … ,
の場合 $b = "1,,,3,4,5,,,,,,,…,,"
2や6以降は無いので,となっている

$b =~ s/^,*(.+?),*$/$1/; … 文字列$bの先頭と末尾に','があれば除去
省13
68: 2020/03/29(日)19:07 ID:5iH4CTSz(2/2) AAS
なるほど、そうやって並んだ部分でグループ化するのか
69
(1): 2020/03/30(月)22:44 ID:xSpiMCgD(1) AAS
>>65 Perl5 少しスマートに書けた(文字列マッチンク処理゙主体になっちまったけれど…)

$"=',';
for (qw{[1] [2,3] [1,2,3] [1,3] [1,3,4,5]}) {
 @a = /(\d+)/g;
 %h = map{$_ => $_} @a;
 @b = map{$h{$_}//' '} 1..20;
 $b = "@b";
 @c = $b =~ /(\d(?:,\d)*)/g;
 s/(,\d+)+,/-/ for @c;
 print "@c\n";
省8
70: 2020/03/30(月)22:45 ID:q7KIsR+X(1) AAS
>>69 テスト時のcodeが残ってた…orz
× @b = map{$h{$_}//' '} 1..20;
○ @b = map{$h{$_}//' '} 1..1000;
71: 2020/03/31(火)23:56 ID:9DwI/QO9(1) AAS
>>59
めったに使えない evalが入てて楽しい
72
(16): 2020/04/03(金)19:14 ID:tv+k2Xei(1/2) AAS
お題

文字列の先頭から続く、0 は、8進数と解釈されるため、バグります!
なので、それらを除去して、10進数と解釈できる文字列にして下さい。
以下は、すべて文字列です

090 → 90
0080 → 80

123 → 123

0 → 0
000 → 0
省1
73: 2020/04/03(金)19:53 ID:MoLJYTUl(1) AAS
>>72 マルチポスト&スレチ
2chスレ:tech
74: 72 2020/04/03(金)20:02 ID:tv+k2Xei(2/2) AAS
向こうのスレから移動したので、このスレで続けて下さい!
1-
あと 928 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.031s