我正在尝试从有限自动机构造一个正则表达式,但发现我自己完全被这个所困扰。要使用的正则表达式是这样的:
? = 0 或 1
* = 0 或更多
+= 1 或更多
| = 或
_ = 空字符串
@ = 空集
() = 括号
据我了解,字符串必须是以“a*”结尾的“b*”或以“a+bb+”结尾
我现在拥有的是((b*(a+(bb))*)*)
,但这并没有考虑到以“a”结尾的字符串。
如前所述,我 100% 坚持这一点,只是无法理解我应该如何处理这个问题。
图片:http: //img593.imageshack.us/img593/2563/28438387.jpg
代码:
自动机
FA 的类型
州
q1
q2
q3
q4
字母
a
b
初始状态
q3
最终状态
q3
q4
过渡
q1 a q2
q1 b q3
q2 a q2
q2 b q2
q3 a q4
q3 b q3
q4 a q4
q4 b q1
任何解决方案或提示表示赞赏!