日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

KMP算法(快速模式匹配)

發布時間:2025/3/15 编程问答 15 豆豆
生活随笔 收集整理的這篇文章主要介紹了 KMP算法(快速模式匹配) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?詳細理解看這里:http://kb.cnblogs.com/page/176818/

?   或者這里:http://blog.csdn.net/yutianzuijin/article/details/11954939

next[]數組的意義是“除自身外的最大重復子串”。

next數組計算:

理解了kmp算法的基本原理,下一步就是要獲得字符串f每一個位置的最大公共長度。這個最大公共長度在算法導論里面被記為next數組。在這里要注意一點,next數組表示的是長度,下標從1開始;但是在遍歷原字符串時,下標還是從0開始。假設我們現在已經求得next[1]、next[2]、……next[i],分別表示長度為1到i的字符串的前綴和后綴最大公共長度,現在要求next[i+1]。由上圖我們可以看到,如果位置i和位置next[i]處的兩個字符相同(下標從零開始),則next[i+1]等于next[i]加1。如果兩個位置的字符不相同,我們可以將長度為next[i]的字符串繼續分割,獲得其最大公共長度next[next[i]],然后再和位置i的字符比較。這是因為長度為next[i]前綴和后綴都可以分割成上部的構造,如果位置next[next[i]]和位置i的字符相同,則next[i+1]就等于next[next[i]]加1。如果不相等,就可以繼續分割長度為next[next[i]]的字符串,直到字符串長度為0為止。

字符串匹配:

計算完成next數組之后,我們就可以利用next數組在字符串O中尋找字符串f的出現位置。匹配的代碼和求next數組的代碼非常相似,因為匹配的過程和求next數組的過程其實是一樣的。假設現在字符串f的前i個位置都和從某個位置開始的字符串O匹配,現在比較第i+1個位置。如果第i+1個位置相同,接著比較第i+2個位置;如果第i+1個位置不同,則出現不匹配,我們依舊要將長度為i的字符串分割,獲得其最大公共長度next[i],然后從next[i]繼續比較兩個字符串。

?

字符串是從0開始的 Next數組是從1開始的

void GetNext(char *T){int j = 0;int Tlen = strlen(T));for(int i = 1; i< Tlen; i++){j = next[i];while (j && T[i] != T[j]) j = next[i];if(T[j] == T[i]) next[i+i] = j+1;} }

?

void KMP(char *S,char *T){int j = 0;int Slen = strlen(S);int Tlen = strlen(T);for(int i = 0 ; i < Slen; i++){while (j && S[i] != T[j]) j = next[j];if(S[i] == T[j]) j++;if(j == Tlen){j = next[j];}} }

?

轉載于:https://www.cnblogs.com/yoyo-sincerely/p/5259952.html

總結

以上是生活随笔為你收集整理的KMP算法(快速模式匹配)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 色欲AV无码精品一区二区久久 | 亚洲午夜福利一区二区三区 | 亚洲美女毛片 | 九九热精品 | 国产欧美在线一区 | 午夜视频www| 中文字幕无码毛片免费看 | 国产精品久久久久9999爆乳 | 91成人在线观看高潮 | 日本久久高清视频 | 日本精品视频网站 | 日本精品视频 | 激情视频在线播放 | 天天干天天操心 | 久久网中文字幕 | 97在线超碰 | 国产福利久久 | 在线亚洲精品 | 国内精品久久久久久久久久久 | 亚洲黄色视屏 | av黄页| av高清 | 91视频在线免费观看 | 中文av一区二区三区 | 日韩高清在线观看一区 | 欧美日韩激情在线一区二区三区 | 三级成人在线 | 一本久久综合 | 国产综合影院 | 黄色在线免费视频 | 91亚洲精品在线 | av激情在线 | 久久er99热精品一区二区 | 东北老女人av | 欧美香蕉视频 | 久久精品天堂 | 日韩成人高清在线 | 波多野结衣理论片 | 亚洲自偷自偷偷色无码中文 | 日韩专区中文字幕 | 免费av成人 | 黄色大片一级 | 久久妇女| 日韩欧美超碰 | 嫩草一区 | 天天搞夜夜爽 | 日本在线不卡一区二区 | 波多在线播放 | 亚洲欧美在线观看视频 | 久久婷香 | 99精品久久久久 | 国产成人片 | 美国一级黄色大片 | 国产98色在线 | 日韩 | 国产亚洲精品久久久久久777 | 国产成人av一区二区三区 | 国产黄色自拍视频 | 毛片基地免费 | 亚洲m码 欧洲s码sss222 | 人人澡人人爱 | 精品一区二区三区不卡 | 欧美成人精品一区二区三区在线观看 | 欧美亚洲天堂 | 欧美黑丝少妇 | 中文字幕乱码人妻二区三区 | 玖玖玖国产精品 | 四虎tv| 秋葵视频在线 | 亚洲婷婷网 | 久久精品99久久久久久 | 韩国av毛片| 六月丁香久久 | 天堂8av| 日本色婷婷 | 最新三级网站 | 免费在线播放视频 | 久久av高潮av | 激情国产精品 | 欧美人与禽猛交乱配 | 制服诱惑一区 | 色哟哟国产精品色哟哟 | youjizz视频 | 亚洲精品久久久久久久久 | 日韩女优网站 | 中文字幕第一区 | 日本免费三片在线播放 | 美女诱惑av | 欧美先锋影音 | 欧美精品成人久久 | 天天摸天天看 | 日韩不卡视频在线观看 | 美女黄页网站 | 久久com| 91爱爱影院 | 日韩网站免费观看 | 韩国伦理大片 | 精品在线播放 | 一区二区三区欧美在线 | 免费看片91 |