日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

詳解KMP算法以及python如何實現

瀏覽:27日期:2022-07-10 17:12:52

算法思路

Knuth-Morris-Pratt(KMP)算法是解決字符串匹配問題的經典算法,下面通過一個例子來演示一下:

給定字符串'BBC ABCDAB ABCDABCDABDE',檢查里面是否包含另一個字符串'ABCDABD'。

1.從頭開始依次匹配字符,如果不匹配就跳到下一個字符

詳解KMP算法以及python如何實現

詳解KMP算法以及python如何實現

2.直到發現匹配字符,然后經過一個內循環嚴查字符串是否匹配

詳解KMP算法以及python如何實現

3.發現最后一個D不匹配,下面就該思考應該把字符串向右移動多少個位置呢?傳統做法可能是移動一格,KMP算法就創新在這里。KMP算法通過查詢一個Partial Match Table(表內存有字符串信息),然后計算出需要移動的步數,這個表后面會介紹怎么來的。

詳解KMP算法以及python如何實現

這里我們看到D前面是B,查表得到第二個B對應的是2,所以 移動數 = 已匹配字符數 - 查表所得數 也就是 6 - 2 = 4, 需要向右移動四格。

詳解KMP算法以及python如何實現

下面也是重復這個步驟

詳解KMP算法以及python如何實現

直到發現匹配或者字符長度超出(未發現匹配)。

Partial Match Table

那么這個查詢的表是怎么來的呢?仍然以'ABCDABD'為例

詳解KMP算法以及python如何實現

- 'A'的前綴和后綴都為空集,共有元素的長度為0;

- 'AB'的前綴為[A],后綴為[B],共有元素的長度為0;

- 'ABC'的前綴為[A, AB],后綴為[BC, C],共有元素的長度0;

- 'ABCD'的前綴為[A, AB, ABC],后綴為[BCD, CD, D],共有元素的長度為0;

- 'ABCDA'的前綴為[A, AB, ABC, ABCD],后綴為[BCDA, CDA, DA, A],共有元素為'A',長度為1;

- 'ABCDAB'的前綴為[A, AB, ABC, ABCD, ABCDA],后綴為[BCDAB, CDAB, DAB, AB, B],共有元素為'AB',長度為2;

- 'ABCDABD'的前綴為[A, AB, ABC, ABCD, ABCDA, ABCDAB],后綴為[BCDABD, CDABD, DABD, ABD, BD, D],共有元素的長度為0。

python實現

def partial_table(p): ’’’’’partial_table('ABCDABD') -> [0, 0, 0, 0, 1, 2, 0]’’’ prefix = set() res = [0] for i in range(1, len(p)): prefix.add(p[:i]) postfix = {p[j:i + 1] for j in range(1, i + 1)} #print(p[:i+1],prefix,postfix,prefix & postfix or {’’}) res.append(len((prefix & postfix or {’’}).pop())) return resdef kmp_match(s, p): m = len(s); n = len(p) cur = 0 # 起始指針cur table = partial_table(p) while cur <= m - n: #只去匹配前m-n個 for i in range(n): if s[i + cur] != p[i]:cur += max(i - table[i - 1], 1) # 有了部分匹配表,我們不只是單純的1位1位往右移,可以一次移動多位break else: return True # loop從 break 中退出時,else 部分不執行。 return Falseprint partial_table1('ABCDABD')print kmp_match('BBC ABCDAB ABCDABCDABDE', 'ABCDABD')

以上就是詳解KMP算法以及python如何實現的詳細內容,更多關于python實現KMP算法的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
亚洲精品中文字幕乱码| 久久99伊人| 在线精品亚洲| 国产探花在线精品| 久久天堂影院| 韩国精品主播一区二区在线观看| 麻豆91精品视频| 999国产精品视频| 日本韩国欧美超级黄在线观看| 日韩中文首页| 美女精品一区| 麻豆视频一区二区| av一区二区高清| 亚洲精品黄色| 日韩精品一区二区三区av| 精品久久久网| 好看的亚洲午夜视频在线| 日韩精品欧美精品| 国产不卡精品| 蜜臀av国产精品久久久久| 丝袜诱惑制服诱惑色一区在线观看| 日韩中文欧美在线| 91视频久久| 午夜在线视频一区二区区别| 国产欧美日韩在线一区二区 | 天堂av在线一区| 久久亚洲精精品中文字幕| 亚洲二区三区不卡| 国产免费久久| 狠狠久久婷婷| 在线亚洲国产精品网站| 麻豆一区二区在线| 蜜臀精品久久久久久蜜臀| 黄色欧美在线| 亚洲影视一区| 久久久久亚洲| 免费日韩成人| 亚洲开心激情| 成人啊v在线| 欧美激情三区| 综合激情在线| 香蕉久久精品| 精品视频久久| 日韩三级一区| 樱桃成人精品视频在线播放| 国产一区日韩| 日韩在线成人| av亚洲一区二区三区| 久久精品97| 丝袜亚洲精品中文字幕一区| 91tv亚洲精品香蕉国产一区| 国产精品一级| 久久国产日韩| 激情不卡一区二区三区视频在线| 免费久久精品| 98精品视频| 国产精品色婷婷在线观看| 日韩中文字幕91| 欧美亚洲激情| 理论片午夜视频在线观看| 久久国产精品久久久久久电车| 亚洲久久在线| 欧美va天堂| 日本va欧美va瓶| 国产高潮在线| 日韩视频在线一区二区三区 | 黄色在线一区| www.com.cn成人| 免费一级欧美片在线观看网站| 欧美日韩国产传媒| 国产探花在线精品一区二区| 日本在线一区二区三区| 久久亚洲视频| 亚洲一区二区三区四区五区午夜| 你懂的亚洲视频| 国产乱人伦精品一区| 日韩欧美精品一区二区综合视频| 亚洲综合在线电影| аⅴ资源天堂资源库在线| 国产精品99久久免费观看| 日韩有吗在线观看| 亚洲人妖在线| 亚洲香蕉网站| 亚洲午夜久久久久久尤物| 亚洲高清av| 好吊视频一区二区三区四区| 伊人精品视频| 一区二区三区国产在线| 一区二区三区四区日韩| 99久久久久| 国产一区二区三区黄网站| 91偷拍一区二区三区精品| 高清av一区| 亚洲黄色免费看| 久久精品导航| 国产精品日韩欧美一区| 免费日韩av片| 亚洲三级视频| 91精品国产自产在线丝袜啪| 久久国产免费看| 欧美成a人片免费观看久久五月天| 蜜臀av一区二区三区| 日韩在线黄色| 久久99免费视频| 精品国产一区二区三区噜噜噜| 午夜在线视频观看日韩17c| 久久性天堂网| 日韩精品久久理论片| 欧美精品一区二区三区精品| 欧美日韩免费观看视频| 99riav1国产精品视频| 综合色就爱涩涩涩综合婷婷| 亚洲制服一区| 国产精品一区二区av日韩在线 | 免费视频一区三区| 蜜臀精品久久久久久蜜臀| 亚洲精品1区| 亚洲精品成人一区| 国产日产精品_国产精品毛片| 婷婷综合成人| 久久麻豆视频| 伊人精品一区| 激情综合在线| 亚洲精品韩国| 美女国产精品久久久| 成人啊v在线| 石原莉奈在线亚洲二区| 国产剧情一区| 久久精品国语| 亚洲精品影院在线观看| 国产精品久久久久久久久久白浆 | 好吊日精品视频| 伊人久久亚洲影院| 欧美色综合网| 国产色播av在线| 性色一区二区| 国产毛片久久久| 亚洲不卡av不卡一区二区| 亚洲午夜久久| 91麻豆国产自产在线观看亚洲| 国产精品99在线观看| av亚洲免费| 国产精品男女| 亚洲精品电影| 国产精品久久久久久久久久齐齐| 捆绑调教美女网站视频一区| 精品久久不卡| 蜜桃视频一区二区三区在线观看| 国产一区二区高清| 国模大尺度视频一区二区| 蜜臀国产一区二区三区在线播放| 亚洲精选av| 久久精品一区二区国产| 中文精品视频| 国产一区二区三区四区二区| 免费看av不卡| 日本不卡中文字幕| 中文在线а√在线8| 日韩综合一区二区| 亚洲网站视频| 欧美国产亚洲精品| 美女久久网站| 综合日韩av| 日韩精品一区二区三区中文 | 欧美1区免费| 欧美日韩午夜电影网| 久久精品影视| 国产乱人伦精品一区| 国产日韩综合| 国产传媒av在线| 久久国产乱子精品免费女| 在线 亚洲欧美在线综合一区| 日本不卡高清| 婷婷丁香综合| 欧美亚洲综合视频| 日韩一区二区免费看| 欧美13videosex性极品| 国产精品亚洲欧美一级在线 | 久久超级碰碰| 日韩精品一区二区三区中文 | 国产精品久久亚洲不卡| 日本在线观看不卡视频| 亚洲欧洲午夜| 亚洲手机视频| 成人精品亚洲| 久久影院午夜精品| 麻豆国产91在线播放| 91成人超碰| 亚洲不卡av不卡一区二区| 国产福利91精品一区二区| 国产欧美一区| 亚洲另类av| 日本黄色精品| 捆绑调教美女网站视频一区| 人人精品人人爱| 性欧美69xoxoxoxo| 精品中文字幕一区二区三区av| 国产乱码精品一区二区三区亚洲人| 久久三级福利| 蜜臀国产一区|