我有一个关于查找给定语言的正则表达式的简单问题。
我获得了语言 L,其中:
L = {w ∈ {0, 1}* : w 正好有一对连续的零}
我的第一次尝试是尝试 L( (0 + 1)* 00 (0 + 1)*) ,但我注意到问题在于我有 (0 + 1)* 因为如果 0被选择,它可以是更多的零,从而导致多于一对连续的零。
我也知道,我可能遇到的情况是,前面、中间和末尾有两个零。我只是不太确定如何为此创建正则表达式。
非常感谢任何帮助。
试试这个:
1*(011*)*00(11*0)*1*
解释:
这个问题的最佳答案是 (1 + 01)* 00 (1 + 10)*
我相信会是这样的
((1*)(01)*))* 00 ((11*)0)*1*
顺序:
我的答案是:(1 + 01) 00 (1 + 10)**
说明:
连续的零前面或后面不应有另一个零。 因此 00 之前应该有一个 1,可以是 1 或 01。 后面可以跟 1 或 10。
错误尝试00110011一定不能满足 但这里已经很满足了 首先取 00 对,然后取 110 然后取011 所以总的来说,00110011 是令人满意的,所以它是错误的