浅谈kmp算法的next数组
//所有学习kmp算法的同学对于kmp最难理解的就是他next数组的代码实现以及其思想
//next数组主要存储的是前i-1个字符串的前缀和后缀重合数+1;当模式串不匹配时候 模式串直接回到下标为next[j]与之进行匹配所以kmp时间复杂度可以达到O(n+m)
//next[j+1]最大值为next[j]+1
//next[j+1]次大值为next[next[j]]+1
//主要代码实现
int get_next()
{
next[0]=-1; int i=0;j=-1;
while(i<length)//length为字符串数组长度
{
if(j==-1||s[i]==s[j]){next[++i]=++j;}
else j=next[j];
}
}

浙公网安备 33010602011771号