开发者社区> 问答> 正文

如何更好的理解和掌握kmp算法

如何更好的理解和掌握kmp算法

展开
收起
知与谁同 2018-07-16 16:14:06 1341 0
1 条回答
写回答
取消 提交回答
  • KMP实际上是AC自动机的退化版本,即模式串个数为1的情况。我之前KMP理解起来也很困难,但是后来学了AC自动机就很容易理解了。
    看起来AC自动机比KMP高端,实际上可以看做一个有条件转移的图。匹配就是从起点沿着边按条件进行转移,理解起来比KMP要容易。

    一点直观的理解:
    在模式串P的匹配过程中,假如在某个位置失配了,我们希望能不回溯从头匹配,因为在之前的匹配过程中已经积累了足够的信息,于是问题完全变成了在每个位置计算模式串后缀和前缀的最长匹配,一个简单的动态规划。
    2019-07-17 22:55:59
    赞同 展开评论 打赏
问答分类:
问答标签:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
数据+算法定义新世界 立即下载
袋鼠云基于实时计算的反黄牛算法 立即下载
Alink:基于Apache Flink的算法平台 立即下载