考法:next和nextval的算法!!!
next[j]就是第j个元素前j-1个元素收尾重合的个数加1;
求nextval数组值的第二种方法
模式串
a
b
a
a
b
c
a
c
next值
0
1
1
2
2
3
1
2
nextval值
0
1
0
2
1
3
0
2
1.第一位的nextval值必定为0,第二位如果于第一位相同则为0,如果不同则为1。
2.第三位的next值为1,那么将第三位和第一位进行比较,均为a,相同,则,第三位的nextval值为0。
3.第四位的next值为2,那么将第四位和第二位进行比较,不同,则第四位的nextval值为其next值,为2。
4.第五位的next值为2,那么将第五位和第二位进行比较,相同,第二位的next值为1,则继续将第二位与第一位进行比较,不同,则第五位的nextval值为第二位的next值,为1。
5.第六位的next值为3,那么将第六位和第三位进行比较,不同,则第六位的nextval值为其next值,为3。
6.第七位的next值为1,那么将第七位和第一位进行比较,相同,则第七位的nextval值为0。
7.第八位的next值为2,那么将第八位和第二位进行比较,不同,则第八位的nextval值为其next值,为2。
在“aaaab”内进行验证。
模式串
a
a
a
a
b
next值
0
1
2
3
4
nextval值
0
0
0
0
4
https://blog.csdn.net/jomodimple_/article/details/78618827