KMP算法失败函数f的计算

失败函数 f 的计算挺有意思,属于 KMP 算法里一个关键的小步骤。它的作用啊,说白了就是在模式串里提前知道“下次从哪开始比”,省得你白白回溯。f(0)设为–1 是惯例,后面每一个f(j),其实就是找前缀后缀最长的公共部分,字符一样就进一位,不一样就往前跳,跳回之前算好的 f 值,直到跳不动。这样匹配的时候,就能又快又省事。

KMP这块如果你还不熟,推荐你看看这篇:

另外,如果你对字符串匹配感兴趣,其他几个方向也蛮值得一看:

如果你是做搜索、编辑器、IDE 插件那种需求,KMP加上这些高级匹配算法一起用,效率和体验都能上一个台阶。嗯,算法理解透了,业务起来也更顺手。

ppt 文件大小:4.19MB