我需要找到一个描述语言的正则表达式{w in {a,b,c}* | neither bc nor cb is part of w}
。
我是这样想的:因为 bc 和 cb 都不能成为正则表达式的一部分,所以任何 b 序列后跟 c 序列(反之亦然)都需要在 c 序列之前至少有一个“a”。这是我提供以下解决方案的方式:
(a+b)* | (a+c)* | (a+b)*a(a+c)* | ((a+b)*a(a+c)*a)* | (a+c)*a(a+b)* | ((a+c)*a(a+b)*a)*
我不确定我的解决方案的正确性,因此我想在这里询问它是否有效。除此之外,是否有一种数学方法可以找到相应的正则表达式?因为我的解决方案仅基于直觉。
先感谢您。