[過去ログ] プログラミングのお題スレ Part21 (1002レス)
上下前次1-新
抽出解除 レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
712(5): デフォルトの名無しさん [] 2023/06/01(木) 09:25:39.43 ID:dfYyQvOG(1) AAS
お題
アルファベットが入力されます
> [A, A, B, B, B, C, C, D, D, D, E]
出力上限が入力されます
> 7
出力上限以内のアルファベットを出力してください
> [A, A, B, B, B, C, C]
ただし、出力上限で切った場合に同じアルファベットが分割される場合は出力上限を超えて
同じアルファベットが続く限り出力してください
アルファベット: [A, A, B, B, B]
出力上限: 3
出力: [A, A, B, B, B]
713: デフォルトの名無しさん [] 2023/06/01(木) 21:49:43.70 ID:+6RwHPfX(1/2) AAS
>>712
C#でループを使わずに出力
www.ideone.com/Xk3ACt
717: デフォルトの名無しさん [] 2023/06/03(土) 18:04:48.61 ID:lPLamTYg(1) AAS
>>712
Kotlin
外部リンク:paiza.io
720(1): 638 [sage] 2023/06/04(日) 20:52:10.72 ID:pcjKLYRK(2/3) AAS
>>712 Perl5
use feature qw{signatures say};
sub f($n, $c, @s) {
if (1 < $n) {
$c, f($n - 1, @s);
} elsif (1 == $n) {
$c, f(0, $c, @s);
} else {
$c, f(0, $c, splice @s, 1) if $c eq $s[0];
}
}
say f 7, qw[A A B B B C C D D D E];
say f 3, qw[A A B B B];
※見易くするためインデントは全角スペースに置換してあります。
実行結果
$ perl 21_712.pl
AABBBCC
AABBB
721: 638 [sage] 2023/06/04(日) 23:24:30.12 ID:pcjKLYRK(3/3) AAS
>>712 Perl5、もっと簡潔なやり方あるんだった…orz
use feature qw{signatures say};
sub f($n, $s) {
my $r = '^.{' . ($n - 1) . '}(.)\1*';
$s =~ /$r/;
$&;
}
say f 7, 'AABBBCCDDDE';
say f 3, 'AABBB';
実行結果
$ perl 21_712_rex.pl
AABBBCC
AABBB
735: デフォルトの名無しさん [] 2023/06/08(木) 10:35:46.63 ID:s2HJPh3y(1) AAS
>>712
Kotlin
抜き出す数の指定が 0 以下の場合は空のリストになるようにした。
外部リンク:paiza.io
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.046s