KMP算法模板
2013-05-17 17:10
302 查看
来自于刘汝佳的”信息学竞赛系列丛书”。
void getFail(char* P, int* f) { int m = strlen(P); f[0] = 0; f[1] = 0; for(int i = 1; i < m; i++) { int j = f[i]; while(j && P[i] != P[j]) { j = f[j]; } f[i + 1]=P[i]==P[j]?j+1:0; } } int find(char* T, char*P, int*f) { int n = strlen(T), m = strlen(P); getFail(P, f); int j = 0; for(int i = 0; i < n; i++) { while(j && P[j] != T[i]) { j = f[j]; } if(P[j] == T[i]) { j++; } if(j == m) { return i - m + 1; } } return -1; }
相关文章推荐
- KMP算法模板(字符串匹配问题)
- KMP算法(——模板习题与总结)
- kmp算法模板
- HDU2087(KMP算法模板题)
- [模板]KMP算法
- KMP算法模板(C++实现)
- KMP算法模板
- KMP算法的定义及KMP练手题 HDU 1711 Number Sequence (我的模板代码)
- KMP算法模板 求子串和模板串首先匹配的位置
- kmp算法模板
- 【模板】 KMP算法
- Number Sequence (KMP算法(模板))
- 剪花布条 (KMP算法(模板))
- KMP算法入门【详解+例题模板】
- 模板 kmp算法 hdu 1711 Number Sequence
- 【模板】字符串匹配KMP算法
- hdu 1711 KMP算法模板题
- KMP算法模板
- 暴力匹配和KMP算法模板
- KMP算法&拓展KMP算法模板