博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字符串查找之KMP算法
阅读量:7045 次
发布时间:2019-06-28

本文共 1348 字,大约阅读时间需要 4 分钟。

hot3.png

再回到next[i]的定义,对于字符串ptr = "ababaaababaa";

next[1] = -1,代表着除了第一个元素,之前前缀后缀最长的重复子串,这里是空 ,即"",没有,我们记为-1,代表空。(0代表1位相同,1代表两位相同,依次累加)。

next[2] = -1,即“a”,没有前缀与后缀,故最长重复的子串是空,值为-1;

next[3] = -1,即“ab”,前缀是“a”,后缀是“b”,最长重复的子串“”;

next[4] = 1,即"aba",前缀是“ab”,后缀是“ba”,最长重复的子串“a”;next数组里面就是最长重复子串字符串的个数

next[5] = 2,即"abab",前缀是“aba”,后缀是“bab”,最长重复的子串“ab”;

next[6] = 3,即"ababa",前缀是“abab”,后缀是“baba”,最长重复的子串“aba”;

next[7] = 1,即"ababaa",前缀是“ababa”,后缀是“babaa”,最长重复的子串“a”;

next[8] = 1,即"ababaaa",前缀是“ababaa”,后缀是“babaaa”,最长重复的子串“a”;

next[9] = 2,即"ababaaab",前缀是“ababaaa”,后缀是“babaaab”,最长重复的子串“ab”;

next[10] = 3,即"ababaaaba",前缀是“ababaaab”,后缀是“babaaaba”,最长重复的子串“aba”;

next[11] = 4,即"ababaaabab",前缀是“ababaaaba”,后缀是“babaaabab”,最长重复的子串“abab”;

next[12] = 5,即"ababaaababa",前缀是“ababaaabab”,后缀是“babaaaababa”,最长重复的子串“ababa”;

 

还有另外一种方法,我看的有的书上写着:

这里我们定义next[1] = 0 , next[1] = 1;

 

再分析ptr字符串,ptr = "ababaaababaa";

跟上一个的情况类似,

 

next[1] = 0 ,事先定义好的

next[2] = 1 ,事先定义好的

next[3] = 1 ,最长重复的子串“”;1代表没有重复,2代表有一个字符重复。

next[4] = 2 ,最长重复的子串“a”;追偿的长度加1,即为2.

next[5] = 3 ,以下都跟之前的一样,这种方法是最长的长度再加上一就可以了。

next[6] = 4

next[7] = 2

next[8] = 2

next[9] = 3 

next[10] = 4 

next[11] = 5 

next[12] = 6 

 

以上是next数组的详细解释。next数组求值 是比较麻烦的,剩下的匹配方式就很简单了。

 

 

参考  

1.https://blog.csdn.net/qq_30974369/article/details/74276186

2.https://blog.csdn.net/starstar1992/article/details/54913261

 

转载于:https://my.oschina.net/sfshine/blog/1801359

你可能感兴趣的文章
全球物联网并购投资趋热 电信运营商如何看清风向?
查看>>
土地紧张使香港数据中心市场增长乏力
查看>>
《贵州省大数据发展报告(2016)》白皮书发布
查看>>
5G:开启英特尔增长的良性循环的钥匙
查看>>
Android的兼容性问题剖析
查看>>
Yahoo!雅虎董事会或将在今天敲定最终竞购报价
查看>>
龙尚科技借力中国移动布局物联网“大连接”
查看>>
域名选择的六大技巧
查看>>
法国研究:日本太阳能超越德国,居全球第二
查看>>
大数据时代,合作才能有效提升资源配置和使用效率
查看>>
当碎片化遇到集成化,CRM该何去何从
查看>>
IBM CEO向特朗普发公开信:支持税改 为促进就业建言
查看>>
Mission Impossible - 说说攻破Chrome究竟有多难
查看>>
他们黑了推特CEO的推特账号 只是为了证明自己
查看>>
解读Java环境变量配置
查看>>
在线可信联盟:IoT安全与全球变暖一样 形势严峻需要共担责任
查看>>
约8937亿元:台积电创下台湾企业市值最高纪录
查看>>
Bitbucket引入了强制双因素认证和IP白名单特性
查看>>
SDN控制器测试工具面世 RYU性能测试报告发布
查看>>
英国四高校携手开展智能传感器系统研究
查看>>