プログラミングのお題スレ Part22 (862レス)
プログラミングのお題スレ Part22 http://mevius.5ch.net/test/read.cgi/tech/1691038333/
上
下
前次
1-
新
通常表示
512バイト分割
レス栞
抽出解除
レス栞
リロード規制
です。10分ほどで解除するので、
他のブラウザ
へ避難してください。
464: デフォルトの名無しさん [] 2025/01/03(金) 13:22:57.82 ID:dEYOS8Dq お題 AのあとにAと同じ数だけBが続く言語エビがあるとします 文字列が入力されたときそれがエビ言語であるか判定するプログラムを作成してください → true A → false B → false AB → true ABB → false AAB → false AABB → true ABAABBAAABBB→ true http://mevius.5ch.net/test/read.cgi/tech/1691038333/464
465: デフォルトの名無しさん [] 2025/01/03(金) 13:25:00.11 ID:dEYOS8Dq >>464 文字化け訂正 誤:AのあとbノAと同じ数だけBが続く言語エビがあるとします 正:AのあとにAと同じ数だけBが続く言語エビがあるとします http://mevius.5ch.net/test/read.cgi/tech/1691038333/465
466: デフォルトの名無しさん [] 2025/01/03(金) 15:30:14.42 ID:aGLRGnDr >>464 lisp https://ideone.com/hHjwKz http://mevius.5ch.net/test/read.cgi/tech/1691038333/466
467: デフォルトの名無しさん [] 2025/01/03(金) 15:34:16.34 ID:aGLRGnDr >>464 python https://ideone.com/2Xa1tx http://mevius.5ch.net/test/read.cgi/tech/1691038333/467
468: デフォルトの名無しさん [sage] 2025/01/03(金) 17:52:02.97 ID:aGLRGnDr >>464 lisp (chatgptに教えてもらった) https://ideone.com/UYK3Qu https://chatgpt.com/share/67778c2d-647c-8011-96dd-954a8f0fba92 http://mevius.5ch.net/test/read.cgi/tech/1691038333/468
469: デフォルトの名無しさん [sage] 2025/01/03(金) 20:07:57.67 ID:yesC/P5F >>464 fn is_ab_lang(input: &str) -> bool { match input .chars() .fold(Some(0), |state, char| match (state, char) { (Some(count), 'A') => Some(count + 1), (Some(count), 'B') if count > 0 => Some(count - 1), _ => None, }) { Some(0) => true, _ => false, } } fn main() { for s in ["", "AB", "AABB", "ABAABBAAABBB"] { assert!(is_ab_lang(s)); // true } for s in ["A", "B", "BA", "ABB", "AAB", "ABBA"] { assert!(!is_ab_lang(s)); // false } } http://mevius.5ch.net/test/read.cgi/tech/1691038333/469
470: デフォルトの名無しさん [sage] 2025/01/03(金) 23:45:21.31 ID:AD9nWeeV >>464 c https://ideone.com/KDcKNc #include <stdio.h> #include <string.h> int isablang(const char *s) { size_t a = strspn(s, "A"), b = strspn(s + a, "B"); return !*s || 0 < a && 0 < b && a == b && isablang(s + a + b); } void g(const char *s) { printf("%s\t%s\n", isablang(s) ? "true" : "false", s); } int main() { g("A"), g("B"), g("C"), g("BA"), g("CA"), g("ABB"), g("AAB"), g("AABABB"), g("ABC"), g("CAB"), g("ABCAB"); g(""), g("AB"), g("ABAB"), g("AABB"); return 0; } http://mevius.5ch.net/test/read.cgi/tech/1691038333/470
473: デフォルトの名無しさん [sage] 2025/01/04(土) 16:26:18.49 ID:kbkaPDs8 >>464 c https://ideone.com/x7a81M ・strspn使わない ・再帰しない #include <stdio.h> int isablang(const char *s) { const char *t, *u; for (; *s; s = u) { if (*s != 'A') return 0; else for (t = s; *t == 'A'; t++); if (*t != 'B') return 0; else for (u = t; *u == 'B'; u++); if (t - s != u - t) return 0; } return 1; } http://mevius.5ch.net/test/read.cgi/tech/1691038333/473
478: 警備員[Lv.18] [] 2025/01/12(日) 04:14:11.28 ID:zWON4EbF >>464 Kotlin https://paiza.io/projects/SkS05OZPJQJlBJ0iWlkkeA http://mevius.5ch.net/test/read.cgi/tech/1691038333/478
492: 9 [sage] 2025/01/24(金) 17:38:14.24 ID:cg1ZmS3G >>464 Perl5 for (<DATA>) { chomp; print "$_ → ", (/^(A((AB)?|(?1))B)+$/g ? 'true' : 'false'), "\n"; } __DATA__ A B AB ABB AAB AABB ABAABBAAABBB ABC AABABB ※見易くするためにインデントを全角スペースに置換してあります 実行結果 ~ $ perl 22_464_AB_rec_rex.pl → false A → false B → false AB → true ABB → false AAB → false AABB → true ABAABBAAABBB → true ABC → false AABABB → false http://mevius.5ch.net/test/read.cgi/tech/1691038333/492
メモ帳
(0/65535文字)
上
下
前次
1-
新
書
関
写
板
覧
索
設
栞
歴
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.051s