如何更好的理解和掌握kmp算法
收起
知与谁同
2018-07-16 16:14:06
1402
0
1
条回答
写回答
取消
提交回答
-
KMP实际上是AC自动机的退化版本,即模式串个数为1的情况。我之前KMP理解起来也很困难,但是后来学了AC自动机就很容易理解了。
看起来AC自动机比KMP高端,实际上可以看做一个有条件转移的图。匹配就是从起点沿着边按条件进行转移,理解起来比KMP要容易。
一点直观的理解:
在模式串P的匹配过程中,假如在某个位置失配了,我们希望能不回溯从头匹配,因为在之前的匹配过程中已经积累了足够的信息,于是问题完全变成了在每个位置计算模式串后缀和前缀的最长匹配,一个简单的动态规划。
2019-07-17 22:55:59