在彼得·林茨(Peter Linz )的一本流行(且必不可少的)计算机科学书籍《形式语言和自动机简介》中,经常提到以下形式语言:
主要是因为无法使用有限状态自动机处理该语言。此表达式的意思是“语言L由'a'的所有字符串组成,后跟'b',其中'a'和'b'的数量相等且非零”。
挑战
编写一个工作程序/函数,该程序将获取仅包含“ a”和“ b”的字符串作为输入,并返回/输出真值,并说出该字符串是否对形式语言L有效。
您的程序不能使用任何外部计算工具,包括网络,外部程序等。Shell是此规则的例外;例如,Bash可以使用命令行实用程序。
您的程序必须以“逻辑”方式返回/输出结果,例如:返回10而不是0,“哔”声,输出到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
s的数量等于s的数量b
)