代码如下:
char s[] = "abcabdc";
void getNext(char s[],int next[])
{
int len=0;
int i=0;
int j=-1;
next[0]=-1 ;
len=strlen(s);
while(i<len-1)
{
if(j==-1||s[i]==s[j])
{
i++;
j++;
next[i]=j;
}
else
{
j=next[j];
}
}
}
模板串
元素 | a | b | c | a | b | d | c |
---|---|---|---|---|---|---|---|
下标 | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
循环过程中值的变化: