人気のある(必須の)コンピューターサイエンスの本、Peter Linzによる「形式言語とオートマトンの紹介」では、次の形式言語が頻繁に述べられています。
主に、この言語は有限状態オートマトンで処理できないためです。この表現は、「言語Lは「a」と「b」が続くすべての文字列で構成され、「a」と「b」の数は等しくゼロではないことを意味します。
チャレンジ
「a」と「b」のみを含む文字列を入力として取得し、この文字列が正式な言語Lで有効かどうかを示す真理値を返す/出力する作業プログラム/関数を作成します。
プログラムは、ネットワーク、外部プログラムなどの外部計算ツールを使用できません。シェルはこの規則の例外です。たとえば、Bashはコマンドラインユーティリティを使用できます。
プログラムは、結果を「論理的な」方法で返す/出力する必要があります。たとえば、0の代わりに10を返す、「ビープ音」、stdoutへの出力などです。詳細はこちら。
標準コードのゴルフ規則が適用されます。
これはコードゴルフです。バイト単位の最短コードが優先されます。幸運を!
真実のテストケース
"ab"
"aabb"
"aaabbb"
"aaaabbbb"
"aaaaabbbbb"
"aaaaaabbbbbb"
偽のテストケース
""
"a"
"b"
"aa"
"ba"
"bb"
"aaa"
"aab"
"aba"
"abb"
"baa"
"bab"
"bba"
"bbb"
"aaaa"
"aaab"
"aaba"
"abaa"
"abab"
"abba"
"abbb"
"baaa"
"baab"
"baba"
"babb"
"bbaa"
"bbab"
"bbba"
"bbbb"
empty string == truthy
とnon-empty string == falsy
受け入れられますか?
a^n b^n
だけでなく、言及または類似)a
b