字符串匹配的KMP算法
来源:互联网 发布:淘宝小二误判如何申诉 编辑:程序博客网 时间:2024/06/09 17:09
KMP算法参见博文:http://www.ruanyifeng.com/blog/2013/05/Knuth%E2%80%93Morris%E2%80%93Pratt_algorithm.html
补充一下NEXT数组的计算方法
next数组,是与字符串长度一样大的数组,记录此位置之前的字符串中前缀和后缀相同的最大长度。因为a前面没有子串,所以记为-1,b前面只有a,根据前缀后缀定义可知,重复最大长度为0,也可以直接认为前面两个固定值为-1、0.
当求第i+1位置的值时,i位置记录了他前面的最长串值,所以只要比较x与d是否相等,若相等,则next[i+1]=next[i]+1
若j不等于i时,j记录他前面的最大值,只需比较y是否与i相等,若相等则,next[i+1]=next[j]+1,不等则重复此过程。
用KMP求包含子串的位置的时间复杂度为O(N)。暴力方法时间复杂度为O(n*m)
阅读全文
0 0
- 字符串匹配的KMP算法
- 字符串匹配的KMP算法
- 字符串匹配的KMP算法
- 字符串匹配的KMP算法
- 字符串匹配的KMP算法
- 字符串匹配的KMP算法
- 字符串匹配的KMP算法
- 字符串匹配的KMP算法
- 字符串匹配的KMP算法
- 字符串匹配的KMP算法
- 字符串匹配的KMP算法
- 字符串匹配的KMP算法
- 字符串匹配的KMP算法
- 字符串匹配的KMP算法
- 字符串匹配的KMP算法
- 字符串匹配的KMP算法
- 字符串匹配的KMP算法
- 字符串匹配的KMP算法
- Linux驱动层调用应用层程序--call_usermodehelper()
- 找错:ZdalRuleCalculateException: 规则引擎计算出错,拆分值=
- vue-cli 使用vue-bus来全局控制
- Angular2是可怕的
- ES2016 新特性:求幂运算符(**)
- 字符串匹配的KMP算法
- 微信小程序配置服务器信息
- HMACSHA1加密
- 浙大版《C语言程序设计(第3版)》题目集前四章总结
- shell 脚本编程之引用
- java中如何调用Shell脚本文件
- gradle
- 浅谈hadoop个组件
- spring boot之拦截器