仅使用括号和*符号,我想到的一个例子是
((a|b)(bb*))*
但我可以有一个字符串,例如abba,最后一个字母是a,这里面没有包含......有什么想法吗?
答案 0 :(得分:2)
这是DFA:
Use the method described here导出并求解R1(初始状态)的等式:
R1 = bR1 + aR2 + λ
R2 = bR1 + λ
将R2替换为R1:
R1 = bR1 + abR1 + a + λ
应用阿登定理:
R1 = (b + ab)*(a + λ)
其余的是改变语法:
(b|ab)*(a|)
这可以在Perl语法中重写为regex进行测试:
^(a?b)*a?$