我正在练习,只想确认我是否正确地制作了表达并将表达式识别为3的倍数?
is that correct expression and my answer:
((aaa)* + (bbb)*)
expression shows a string length multiple of 3
答案 0 :(得分:1)
是的,你的正则表达式是正确的,由图片中的NFA定义的语言接受空字符串^或(aaa) + 或(bbb) + 。你已经覆盖了^ in * closure。
如果您愿意,可以将其DFA设置如下:
__ bbb __ aaa
|| ||
▼| ▼|
--►((Q0))---aaa---►((Q1))
Q0和Q1都是最终状态(Q0是开始状态)。
旁注:您可以将'aaa'的边缘标签替换为'bbb',将'bbb'替换为'aaa',以获得另一种形式的相同DFA。另外,在标准形式的DFA中,边缘标签可以是单个语言符号。