alt text http://img31.imageshack.us/img31/4383/image24xu.jpg
我的练习表上有一个问题是找到r = (a|b)*ab(a|b)*
我想出了一个解决方案,但我不确定它是否正确。请帮我检查一下,并纠正我的错误。
答案 0 :(得分:5)
我假设a
和b
是唯一允许的符号。
您的原始表达式匹配包含ab
的任何字符串。补码是不包含ab
的任何字符串。换句话说,如果有a
,则下一个字符必须是另一个a
或字符串的结尾。如果发生b
,则必须在所有a
之前。
这样就得到了结果:
b*a*
我认为你的表达方式与此相同。
答案 1 :(得分:0)
给定的RE表示具有子串ab的语言至少一次 相同的补语是..语言不接受子串ab
因此b * a *是正确答案