automation - 谁能告诉我给定语言的正则表达式?
问题描述
所有包含偶数个 0 或偶数个 1 的字符串。在这里,我问的是“或”而不是“和”。
我想出了这个:(1*01*0)*|(0*10*1)*到目前为止...但这对我来说似乎是错误的,因为当您为上述语言绘制 DFA 时,您甚至可以接受 111 或000 也是。
解决方案
对于零,允许任意数量的零部分与任意数量的前导非零和分隔非零。然后允许任何尾随非零。如果字符串与此模式不匹配,则它有奇数个零。
(1*01*0)*1*
并且要为 0 或 1 执行此操作,只需使用1
s 进行复制并将其添加为整个事物的替代方案。
(1*01*0)*1*|(0*10*1)*0*
而且,111
并且000
都正确满足条件,因为111
有偶数个0
s 并且000
有偶数个1
s。不应该工作的例子是1101
or 011100
。
推荐阅读
- python - 如何在 __str__ 方法中获取 TextChoice 枚举值
- python - 如何将字符串插入较大字符串的特定部分?
- c++ - 对数深度缓冲方法是否正确插入顶点属性?
- java - JFrame 之前的 JDialog
- python - WebDriverException:未知错误:Chrome 无法启动:使用 make docker-run 命令异常退出
- angularjs - 在我的 html 主文件中包含带有 AngularJS 的某个 div
- mysql - 无法设置 column = 0 当它为 1 时,“Data too long for column...”
- java - 使用jsoup获取java.net.SocketTimeoutException:读取超时异常
- wpf - 如何根据树视图项目折叠或展开在画布中重绘线条?
- c# - 锁定对象的最佳方法