[過去ログ] プログラミングのお題スレ Part17 (1002レス)
前次1-
抽出解除 レス栞

このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
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"
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
130: 2020/04/14(火)12:04 ID:ZuF0W/s6(1) AAS
>>61 Perl5、正規表現を使った文字列処理ではなく、数値のリストに対する処理として書いてみた

sub f {
 my @s;
 while (my $e = shift) { push @s, $e }
 @_ ? (@s ? (\@s, f(@_)) : f(@_)) : \@s;
}
sub g { @_ > 2 ? "$_[0]-$_[-1]" : @_ }
for ([1], [2,3], [1,2,3], [1,3], [1,3,4,5], [7,9]) {
 @a = ();
 @a[@$_] = @$_;
省13
前次1-
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.048s