我有两个问题。这些正则表达式是否相同?
(1)b *(ab *)*和(b * a)* b *
(2)b *(aaab *)*和(b * aaa)* b *
我觉得他们都创造了具有世界回文的语言。是对的吗?在第一个中,两个都是必须的,而b是零或无限制。第二个是相同的。字符串aaa在两者中都是必须的,而且b是零或无限制。
我是对的吗?
答案 0 :(得分:1)
在这两种情况下,两个正则表达式不同(它们是不同的正则表达式),但它们做描述相同的语言。所以这两个问题的答案(来自你的练习?)都是“是”。
在第一种情况下,正则表达式描述 a
和b
的任何字符串的语言。在第二种情况下,您将获得所有a
出现在三元组中的语言,作为组合aaa
。第一种语言也由正则表达式(a|b)*
(或(a + b)*
或(a U b)*
描述,我不知道您的书使用的符号),第二种语言也由正则表达式(aaa|b)*
。
在这两种情况下,如果你反转元素,语言保持不变,因此,如果你颠倒描述它们的正则表达式,它们也保持不变。
Palindromes是自己保持不变的词语。但是这两种语言都有 not 回文的元素,比如单词aaab
,因为aaab
!= baaa
。因此,谈论回文并不是正确的论据。