Dalam buku ilmu komputer populer (dan esensial), Pengantar Bahasa Resmi dan Automata oleh Peter Linz, bahasa formal berikut ini sering dinyatakan:
terutama karena bahasa ini tidak dapat diproses dengan automata negara-terbatas. Ungkapan ini berarti "Bahasa L terdiri dari semua string 'a diikuti oleh' b's, di mana jumlah 'a dan' b's sama dan tidak nol".
Tantangan
Tulis program / fungsi kerja yang hanya berupa string, yang mengandung "a" dan "b" , sebagai input dan mengembalikan / menampilkan nilai kebenaran , dengan mengatakan jika string ini valid, bahasa formal L.
Program Anda tidak dapat menggunakan alat perhitungan eksternal apa pun, termasuk jaringan, program eksternal, dll. Kerang adalah pengecualian dari aturan ini; Bash, misalnya, dapat menggunakan utilitas baris perintah.
Program Anda harus mengembalikan / menampilkan hasilnya dengan cara yang "logis", misalnya: mengembalikan 10 bukannya 0, "bip", mengeluarkan ke stdout dll . Info selengkapnya di sini.
Aturan golf kode standar berlaku.
Ini adalah kode-golf . Kode terpendek dalam byte menang. Semoga berhasil!
Kasus uji kebenaran
"ab"
"aabb"
"aaabbb"
"aaaabbbb"
"aaaaabbbbb"
"aaaaaabbbbbb"
Kasus uji palsu
""
"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
dan non-empty string == falsy
dapat diterima?
a^n b^n
atau serupa, daripada hanya jumlah a
s yang menyamai jumlah b
s)