【算法】KMP模式匹配算法
来源:互联网 发布:级域名泛解析多久生效 编辑:程序博客网 时间:2024/04/25 01:20
理论基础:
说实话,我暂时只是记得公式,至于如何推导出来的---我不相信一些参考书那样拿朴素字符串匹配算法比几下然后哪一个步骤可以省略就可以得出这个公式。
说说算法,步骤,对于一个字符串:
abcmdmdmjkldlkfdfdf,
假如我们需要在里面寻找:
mdmjk
这一个字符串T,那么我们需要根绝公式算出T的next数组,然后根据next数组遍历比较,寻找匹配位置。
下面引用部分参考书籍的解析:
公式:
具体计算过程:
请注意:前缀字符串及后缀字符串的相似度决定了除了第一第二个字符的next值,前缀字符串不能包含最后一位,后缀字符串不能包含第一位,譬如:
第六步:最大前缀字符串为:abca 最大后缀字符串为:bcab假如两者相等,那么在前(后)缀字符串的长度+1为相应的next值。
第一位的next值必定为0,
其他的假如前后缀字符串都无法匹配,那么next值为1.
下面上算法。
- 模式匹配---KMP算法
- 模式匹配 KMP算法
- 模式匹配-KMP算法
- KMP模式匹配算法
- KMP模式匹配算法
- KMP模式匹配算法
- 模式匹配kmp算法
- 模式匹配算法kmp
- KMP模式匹配算法
- KMP模式匹配算法
- KMP模式匹配算法
- KMP模式匹配算法
- KMP模式匹配算法
- KMP模式匹配算法
- KMP模式匹配算法
- KMP模式匹配算法
- KMP算法模式匹配
- KMP 模式匹配算法
- csdn博客被一个无名网站套用,不知大家是否也是这样?
- wikioi p1154 能量项链
- Uva11997 优先级队列的应用 多路合并问题
- Objective-C ,ios,iphone开发基础:在UITextField输入完以后,隐藏键盘,
- Ubantu 使用disks工具全盘格式化之后数据恢复
- 【算法】KMP模式匹配算法
- Linux Shell中各种分号和括号的用法总结
- Node.js-require的使用方法
- hdu 4658 Integer Partition 整数划分+生成函数
- android 缓存Bitmap - 开发文档翻译
- javascript 把字符串转换成json对象
- Nginx-ngx_queue
- Android SDK下载和更新失败的解决方法!!!
- 飘逸的python - 性能调优利器profile及其意义