void kmp_next(char* s, int m, int next[]){ //dp求next数组
int i, k = next[0] = -1;
i = 0;
while(i<m){
if(k==-1 || s[i]==s[k]) next[++i] = ++k;
else
k = next[k];
}
}
int kmpSearch(char* s, char*p ,int slen, int plen){
int i = 0, k = 0;
while(i < slen && k < plen) {
if(j == -1 || s[i] == p[k]) {
++i; ++k;
}
else
j = next[k];
}
if(k == plen) return i - k;
else return -1;
}
KMP小模板
最新推荐文章于 2023-03-04 10:40:49 发布