KMP模板
2015-04-13 10:19
127 查看
void getnext() { int i=0; int j= next[0] = -1; while( i < pattern_len) { if( j==-1 || pattern[i] == pattern[j] ) { i++; j++; if (pattern[i] != pattern[j]) next[i] = j; else next[i] = next[j]; } else j = next[j]; } } int kmp() { int i = 0, j = 0; str_len = strlen(str); getNext(); while (i < str_len && j < pattern_len) { if (j == -1 || str[i] == pattern[j]) { ++i; ++j; } else j = next[j]; } if (j >= pattern_len) return i - pattern_len; else return -1; }
相关文章推荐
- poj 3461 Oulipo(kmp 模板题)
- KMP模板题汇总(更新中。。。)
- HDU 1711 Number Sequence (KMP模板题)
- HDU2087 剪花布条 KMP模板
- HDOJ 1711 Number Sequence(KMP模板题)
- 【字符串】【kmp模板】
- Number Sequence(KMP,判断子串 模板)
- KMP模板
- HDU 1686 Oulipo【KMP模板题】
- czl蒟蒻的模板库3——KMP
- P3375 【模板】KMP字符串匹配(全程注释,简单易懂)
- KMP模板1(便于理解)(poj3461)
- POJ 3461Oulipo KMP模板
- KMP简单模板
- KMP模板
- HDU 1711 Number Sequence(KMP 模板)
- P3375 【模板】KMP字符串匹配
- HDU 2087 剪花布条【最长不重复子串】【KMP】【水题】【模板题】
- HDU 6153 A Secret(扩展kmp模板题)
- hdoj1711(KMP模板题)Number Sequence