您的位置:首页 > 其它

【KMP】KMP算法模板

2014-12-19 00:33 309 查看
char t
, p[M];
int n, m, f[M];

void get_f()
{
f[0] = -1;
int i = 0, j = -1;
while(i < m) {
if(j == -1 || p[i] == p[j]) {
i++; j++;
f[i] = j;
}
else j = f[j];
}
}

int match()
{
get_f();
int i = 0, j = 0, ans = 0;
while(i < n) {
if(j == -1 || t[i] == p[j]) {
i++; j++;
if(j == m) {
ans++;
j = f[j];
}
}
else j = f[j];
}
return ans;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: