[過去ログ] プログラミングのお題スレ 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