模式匹配算法kmp
2011-10-10 13:56
281 查看
void get_next() //求next[]数组 { for(int i=0,j=-1;i!=st.size()-1;) //st.size()是st模式串的长度大小 { if(-1==j ||st[i]==st[j]) { i++; j++; next[i]=j; } else { j=next[i]; ++i; next[i]=j; } }//for next[0]=-1; }
void kmp() { get_next(); //求出next[]数组 int i=0,j=0; while(i<s.size() && j<st.size()) //s是待匹配的主串,st是模式串 { if(s[i]==st[j]) { i++; j++; } else j=next[j]; } if(j>=st.size()) //游标j的大于或等于模式串的长度,说明已找到 cout<<"Bingo!"<<endl; }
相关文章推荐
- KMP 快速模式匹配算法
- [转] 字符串模式匹配算法——BM、Horspool、Sunday、KMP、KR、AC算法一网打尽
- KMP模式匹配算法中next和nextval的求解
- 字符串模式匹配算法——BM、Horspool、Sunday、KMP、KR、AC算法
- KMP模式匹配算法
- KMP模式匹配算法
- KMP模式匹配算法
- 经典算法研究:模式匹配(子串匹配)之 KMP 算法(C语言实现版)
- KMP字符串模式匹配算法
- KMP,模式匹配算法
- KMP模式匹配算法学习笔记
- 数据结构学习:KMP模式匹配算法
- KMP 快速模式匹配算法
- 字符串模式匹配算法——BM、Horspool、Sunday、KMP、KR、AC算法一网打尽
- KMP字符串模式匹配算法Java实现
- KMP模式匹配算法
- 数据结构-串-KMP模式匹配算法
- 9.KMP模式匹配算法实现o(n)复杂度的匹配
- KMP字符串模式匹配算法
- KMP模式匹配算法中next和nextval数组的快速求解