Next数组
- 用于在模式字符串(Pattern)与目标字符串(Text)进行匹配时,当遇到不匹配的情况,指导模式字符串如何移动,以避免从头开始匹配,从而提高匹配效率。
- Next数组的构建是基于模式字符串的前缀和后缀的匹配。对于模式字符串中的每个位置i,Next数组记录了在该位置之前的子串中,最长的相同前缀后缀的长度。这个长度可以用来决定在失配时,模式字符串应该回退到哪个位置。
手工求next值
- 数组从下标1开始,用下面的方法。

- 数组从下标0开始,则初始化时next[0]=-1,公式为next[i]=匹配字符的个数。注意与下标从1开始的区别。

Next数组代码构建

代码
void getNext(const char* t,int* next){
int j=-1;
int i=0;
next[0]=-1;
while(i<=strlen(t)){
if(j==-1 || t[i]==t[j]){
i++;
j++;
if(t

最低0.47元/天 解锁文章
2066

被折叠的 条评论
为什么被折叠?



