模式匹配kmp演算法(c++)
啃了兩天,總算是把kmp拿下了。
唉 怪當初資料結構課沒好好聽
void getnext(int next[],string t)
{
int j=0,k=-1;
next[0]=-1;
while(j<t.length()-1)
{
if(k == -1 || t[j] == t[k])
{
j++;k++;
if(t[j]==t[k])//當兩個字元相同時,就跳過
next[j] = next[k];
else
next[j] = k;
}
else k = next[k]; // k回溯到當前指標的前一個位置也就是第k個元素在失配時,子串的第next[k]個元素與當前母串的位置進行匹配
}
}
int kmp(string s,string t)
{
int next[maxsize],i=0,j=0;
getnext(next,t);
while(i<s.length()&&j<t.length())
{
if(j==-1 || s[i]==t[j])
{
i++;
j++;
}
else
j=next[j];
}
if(j>=t.length())
return (i-t.length()); //匹配成功,返回子串的位置
else
return -1; //沒找到
}
相關文章
- 模式匹配-KMP演算法模式KMP演算法
- KMP模式匹配演算法KMP模式演算法
- KMP字串模式匹配詳解KMP字串模式
- 字串匹配演算法:KMP字串匹配演算法KMP
- KMP字串匹配演算法KMP字串匹配演算法
- 字串匹配KMP演算法初探字串匹配KMP演算法
- KMP Algorithm 字串匹配演算法KMP小結KMPGo字串匹配演算法
- 字串匹配之KMP《演算法很美》字串匹配KMP演算法
- 字串匹配問題——KMP演算法字串匹配KMP演算法
- 單模式匹配 KMP 演算法 簡易版學習筆記模式KMP演算法筆記
- 字串匹配-BF演算法和KMP演算法字串匹配演算法KMP
- 字串匹配演算法(三)-KMP演算法字串匹配演算法KMP
- kmp字串匹配,A星尋路演算法KMP字串匹配演算法
- 字串匹配基礎下——KMP 演算法字串匹配KMP演算法
- KMP字串匹配演算法 通俗理解KMP字串匹配演算法
- 【字串匹配】KMP字串匹配KMP
- 快速字串匹配一: 看毛片演算法(KMP)字串匹配演算法KMP
- 匹配字串之——KMP演算法深入理解字串KMP演算法
- KMP字串匹配演算法理解(轉)KMP字串匹配演算法
- 神奇的字串匹配:擴充套件KMP演算法字串匹配套件KMP演算法
- 把KMP演算法嚼碎!(C++)KMP演算法C++
- 【資料結構與演算法】模式匹配——從BF演算法到KMP演算法(附完整原始碼)資料結構演算法模式KMP原始碼
- 字串匹配演算法之 BF 和 KMP 講解字串匹配演算法KMP
- 【大話資料結構C語言】22 串的快速模式匹配演算法(KMP演算法)資料結構C語言模式演算法KMP
- 圖解KMP字串匹配演算法+程式碼實現圖解KMP字串匹配演算法
- 資料結構-KMP模式演算法資料結構KMP模式演算法
- 第五章 字串專題 ---------------- 字串匹配(二)----KMP演算法字串匹配KMP演算法
- KMP字串匹配學習筆記KMP字串匹配筆記
- POJ-3461 Oulipo-匹配的字元有幾個(KMP演算法)字元KMP演算法
- 串(2)--模式匹配演算法模式演算法
- 【資料結構與演算法】字串匹配(Rabin-Karp 演算法和KMP 演算法)資料結構演算法字串匹配KMP
- KMP演算法KMP演算法
- KMP 演算法KMP演算法
- 樸素的模式匹配演算法模式演算法
- 【KMP求字串匹配次數】 hdu 1686KMP字串匹配
- 【演算法】KMP演算法演算法KMP
- 字串查詢演算法總結(暴力匹配、KMP 演算法、Boyer-Moore 演算法和 Sunday 演算法)字串演算法KMP
- 演算法之KMP演算法KMP