文章目录
- KMP算法
-
- KNP算法的灵魂:主串指针i不回溯,模式串指针j的回溯量取决于j当前指向的字符之前的串(模式串的子串)的前后缀的相似度
- 串的next数组:简单,next[i]的值减1 就是 模式串j从1到i-1的子串的最长公共前后缀的长度
- KMP的代码
-
- 返回子串T的next数组,难,时间复杂度O(m),m是子串长度
- 用KMP进行模式匹配,返回模式串在主串中的位置,时间复杂度O(m+n)
- 和朴素遍历算法的对比:KMP在模式和主串之间存在许多“部分匹配”时优势明显
- KMP算法的改进:改进next数组为nextval,减少j回溯时的多余判断
-
- nextval数组值推导
-
- 推导公式
- 原理
- 例子
- 计算nextval数组的函数代码

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/126325.html