【问题标题】:Regular Expression in Finite Automata有限自动机中的正则表达式
【发布时间】:2016-11-06 04:13:49
【问题描述】:

我需要一个正则表达式的解释:

所有不包含 2 个或多个连续 a 的 {a,b} 字符串。

【问题讨论】:

  • 通过解释你的意思是你想要那个练习的解决方案吗?
  • 我确实构建了 DFA,但从那里我找不到表达式。
  • 这是一个cs的问题,请看如何从你的自动机中获取正则表达式的解释:cs.stackexchange.com/questions/2016/…
  • 我想你应该考虑一下,a 后面必须跟 b,除了最后。
  • @SoumyaKantiNaskar 我回答你的问题了吗?如果是,请接受,如果不是,请发表评论。

标签: finite-automata automata


【解决方案1】:

您描述的正则表达式不应生成以“aa”作为子字符串的字符串。

  1. 如果您已经有一个有限自动机,您可以使用状态消除算法将其转换为正则表达式:(这是一个 youtube 链接)

FA to regular expression

  1. 如果你想要一个直接的正则表达式,下面会起作用: 左边部分涵盖了以 b 结尾的所有内容以及空字符串。正确的涵盖以 a 结尾的所有内容。

( (ab + b)* + ((ab + b)* a) )

【讨论】:

  • 看来可以简化为(a?b)*a?,即((a+ε) b)* (a+ε)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-05-28
  • 2014-12-05
  • 1970-01-01
  • 1970-01-01
  • 2019-05-16
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多