您的位置:首页 > 理论基础 > 数据结构算法

个人学习——数据结构:KMP算法next函数序列计算

2015-10-13 16:03 399 查看
至于KMP是什么,next函数是什么我就不多说了,直接上方法:

首先明确什么是前缀什么是后缀:

abcd

前缀:abc ab a

后缀:d cd bcd

例1 abaabcac

这个字符串一共有8位,若没有前缀和后缀相等为其他情况,置1,若有相等,置长度加1,一位相等置2类似。。。。。

1.第一位时,果断是0(函数说明里有,各种数据结构教材也有)

2.第二位时刻,看的是‘a’(该位之前的字符串),属于其他情况 1

3.看的是 ab 没有相等属于其他情况 1

4.aba 可能出现前缀a和后缀a,即相等,长度为1,所以该位1+1=2

5.abaa a 和 a 2

6.abaab ab 3

7.abaabc 1

8.abaabca a 2

所以结果为:01122312

例2:abaabaca

1.0

2.1

3.1

4.a 2

5.a 2

6.ab 3

7.aba 4

8.1

即:01122341
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息