void getNext(char *b,int *next,int n){
int j=0;
next[0]=next[1]=0;
for(int i=1;i<n;i++){
while(j>0&&b[i]!=b[j])j=next[j];
if(b[i]==b[j])j++;
next[i+1]=j;
}
}
void Find(char *s,int n,char *t,int m,int *next){
int j=0;
for(int i=0;i<n;i++){
while(j>0&&s[i]!=t[j])j=next[j];
if(s[i]==t[j])j++;
if(j==m){
}
}
}
kmp
最新推荐文章于 2024-11-16 09:45:51 发布