【问题标题】:Converting RE -> NFA转换 RE -> NFA
【发布时间】:2011-05-09 16:09:53
【问题描述】:

我有一个关于将正则表达式转换为非确定性有限状态自动机的问题:

将 (a*|b*)* 转换为 NFA。我的尝试如下:

我是不是完全不合时宜?还是有些地方?

NB E => ε

【问题讨论】:

    标签: regex compiler-construction finite-automata nfa


    【解决方案1】:

    您的 NFA 与 (a*|b*)* 匹配相同的语言,所以答案是正确的。

    但是,有许多 NFA 匹配相同的语言,在您的情况下,可以删除至少三个 epsilon 箭头。不过,它不会比您的建议更正确。

    也可以简化正则表达式(a*|b*)*,而不改变语义。例如。 (a|b)* 等价于 (a*|b*)*。如果你仔细想想,FA 可以这么简单:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-09-16
      • 2011-08-16
      • 2013-01-28
      • 1970-01-01
      • 1970-01-01
      • 2019-10-18
      • 2019-03-14
      相关资源
      最近更新 更多