KMP模板
2014-06-16 21:56
148 查看
text作为文本串,pat作为模板串,nxt作为失配函数
求失配边的过程,是模板串用自己匹配自己的过程。
匹配的过程,从两个串的第一个元素开始尝试匹配,如果当前位置匹配成功或者在失配
的情况下退无可退,则同时前进一个单位,否则沿着失配边走。
char text[maxn],pat[maxn];int nxt[maxn];void get_next(char *s){int i=0,j=-1,len=strlen(s);nxt[0]=-1;while(i<len){ if(j==-1||s[i]==s[j]) { i++; j++; nxt[i]=j; } else j=nxt[j];}}int kmp(){int len1=strlen(text),len2=strlen(pat);int i=1,j=0;while(i<len1&&j<len2){ if(c6afj==-1||text[i]==pat[j]) { i++,j++; } else j=nxt[j];} if(j>=len2) return i-len2;else return -1;}
相关文章推荐
- HDU 2087 剪花布条 KMP极其初级之入门题(KMP模板在这里)
- KMP模板
- kmp-模板-hd-1711
- P3375 【模板】KMP字符串匹配
- Kmp 模板(邝斌 - 人一我百,人百我万)
- [POJ 3461] Oulipo & KMP模板
- POJ3461(KMP模板题)
- KMP模板
- kmp返回头位置的模板
- KMP模板
- Codeforce-126B:Password(KMP模板题)
- hdu 1711 KMP模板题
- KMP模板
- kmp模板
- 模板整理之KMP
- kmp模板 && 扩展kmp模板
- poj3461 Oulipo (KMP模板题~) 前面哪些也是模板题 O.O
- hdu 2594 Simpsons’ Hidden Talents(kmp模板)
- kmp模板
- 扩展KMP模板