串的定义:串是由零个或多个字符组成的有限序列,又名叫字符串。
kmp算法中获取next数组代码
//前缀是固定的,后缀是相对的
void get_next(String T,int *next)
{
i=0;
j=1;
next[1]=0;
while(i<T[0])
{
if(j==0||T[i]==T[j])
{
i++;
j++;
if(T[i]!=T[j])
{
next[i]=j;
}else{
next[i]=next[j];
}
}else{
j=next[j];
}
}
}
kmp算法代码
int Index_KMP(String S,String T,int pos)
{
int i = pos;
int j = 1;
int next[255];
get_next(T,next);
while(i<=s[0]&&j<=T[0])
{
if(j==0||S[i]==T[j])
{
i++;
j++;
}else{
j=next[j];
}
}
if(j>T[0])
{
return i-T[0];
}else{
return 0;
}
}