串的定义:串是由零个或多个字符组成的有限序列,又名叫字符串。
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;
}
}
KMP算法实现与next数组生成
文章介绍了串(字符串)的概念,并详细讲解了KMP算法中的next数组生成过程,以及如何使用该数组进行字符串匹配。提供的C语言代码实现了KMP算法的核心功能。
2242

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



