KMP 模板
2016-09-26 17:52
218 查看
测试题目:
const int maxn = 100; char s[maxn],p[maxn]; int fail[maxn]; /* p为模式串 ** f为保存失配边的数组 ** */ 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; } } /* ** s为文本串 p为模式串,fail保存失配边 ** 匹配成功返回true ** 失败返回false */ bool Match(char* s,char* p,int* fail){ getFail(p,fail);//得到fail数值 int m = strlen(p),n = strlen(s); int i = 0, j = 0; while(i < n){ while(i < n && j < m && s[i] == s[j]){//新一轮匹配 i++,j++; } if(j == m) return true;//匹配成功 j--; while(j && p[j] != s[i]) j = fail[j];//根据fail跳转 } return false; }
相关文章推荐
- KMP&&manacher模板题
- KMP模板+例题
- KMP模板
- HDU - 1711 Number Sequence (kmp模板题)
- HDU--2203(kmp,模板题)
- KMP模板 POJ 3461 KMP模板讲解
- B.背单词 。。 KMP。模板题
- HDU 2087剪花布条(KMP入门模板题)
- poj 3461 Oulipo(KMP,喜闻乐见纯模板)
- KMP模板
- KMP 算法模板
- HDU 2594 - Simpsons’ Hidden Talents(扩展kmp模板)
- hdu 1711 kmp模板题
- ACM常用模板——字符串匹配——KMP
- 【模板】KMP字符串匹配
- kuangbin专题16A(kmp模板)
- kmp模板 hdu1711
- kmp模板
- [模板]扩展KMP模板
- KMP超强模板贴一份