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

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

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

瀏覽:25日期: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久久,三上悠亚国产精品一区二区三区
亚洲一区欧美| 成人三级高清视频在线看| 日韩大片在线播放| 色爱综合av| 四虎8848精品成人免费网站 | 九九精品调教| 亚洲二区在线| 国产精品91一区二区三区| 亚洲欧美日韩国产| 青青在线精品| 日产精品一区二区| 一区二区视频欧美| 中文字幕日韩亚洲| 国产精品nxnn| 亚洲国内欧美| 午夜久久av| 福利一区二区| 亚洲一区二区三区高清| 蜜臀国产一区二区三区在线播放| 欧美一级一区| 久久影院午夜精品| 亚洲一区二区三区高清| 欧美啪啪一区| 日韩免费高清| 亚洲精品乱码久久久久久蜜桃麻豆| 日本视频在线一区| jizzjizz中国精品麻豆| 午夜精品亚洲| 国产精品成人3p一区二区三区| 日韩在线观看一区| 人人精品人人爱| 精品久久久久中文字幕小说| 尹人成人综合网| 日韩和欧美的一区| 在线观看精品| 国产欧美一区二区三区米奇| 亚洲精品**中文毛片| 欧美综合二区| 国产精品一区亚洲| 亚洲福利精品| 日产欧产美韩系列久久99| 日本一区二区免费高清| 久久亚洲精品伦理| 久久久久久久欧美精品| av资源新版天堂在线| 亚洲一区二区免费在线观看| 麻豆91在线播放| 免费成人在线影院| 精品久久久久久久| 亚洲免费毛片| 私拍精品福利视频在线一区| 国产精品外国| 91精品xxx在线观看| 欧美日韩黄网站| 久久成人亚洲| 欧美亚洲精品在线| 老色鬼精品视频在线观看播放| 亚洲一区二区毛片| 欧美日韩视频网站| 毛片不卡一区二区| 亚洲精品韩国| 女同性一区二区三区人了人一 | 欧美激情亚洲| 日韩视频一二区| 久久国产小视频| 国产日韩高清一区二区三区在线 | 国产一区二区三区自拍| 免费日韩成人| 91精品国产一区二区在线观看| 在线亚洲国产精品网站| 日韩免费看片| 精品一区二区三区免费看| 欧美日韩精品一区二区三区在线观看| 99久久精品网站| 伊伊综合在线| а√天堂中文在线资源8| 麻豆视频观看网址久久| 国产欧美二区| 国产日韩精品视频一区二区三区| 亚洲精品精选| 午夜久久av| 午夜天堂精品久久久久| 一区二区亚洲视频| 六月天综合网| 亚洲色图综合| 亚洲婷婷丁香| 亚洲三级精品| 亚洲精品乱码日韩| 视频在线在亚洲| 麻豆精品91| 亚洲免费一区三区| 日韩一区精品| 日本午夜精品视频在线观看| 日韩超碰人人爽人人做人人添| 亚洲三级视频| 91久久精品无嫩草影院| 日韩av电影一区| 国产精品日本一区二区三区在线| 国产精品高潮呻吟久久久久| 精品一二三区| 日韩欧美二区| 亚洲黄页一区| 视频一区二区三区中文字幕| 日韩午夜电影| 一区二区三区国产盗摄| 日韩有码av| 欧美激情 亚洲a∨综合| 欧美www视频在线观看| 999视频精品| 亚洲一区免费| 日韩成人精品一区二区三区| 国产精品日韩精品在线播放| 久久这里只有| 日本高清不卡一区二区三区视频| 欧美一区二区三区高清视频| 狠狠久久婷婷| 人人精品久久| 91亚洲国产高清| 久久狠狠婷婷| 免费成人av在线播放| 国产精品天天看天天狠| 天堂av在线| 久久国产66| 久久成人av| 亚洲香蕉网站| 97精品国产99久久久久久免费| 精品一区二区男人吃奶| 国产在线欧美| 中文无码久久精品| 国产精品调教视频| 久久久久久久久久久9不雅视频| 天使萌一区二区三区免费观看| 青青草91久久久久久久久| 国产经典一区| 伊人久久大香线蕉av超碰演员| 91精品日本| 亚洲www啪成人一区二区| 日韩中文字幕91| 精品久久久久久久| 99国产精品99久久久久久粉嫩| 国产伦理久久久久久妇女| 久久国产欧美| 国产精品天天看天天狠| 久久久久国产精品一区三寸| 亚洲精品三级| 性欧美videohd高精| 日本不卡视频在线| 久久五月天小说| 久久激情av| 亚洲神马久久| 麻豆网站免费在线观看| 日韩精品成人在线观看| 99热精品久久| 蜜桃久久久久| 久久午夜精品| 日韩欧美二区| 国产精品地址| 综合国产在线| 亚洲福利免费| 久久精品国产99国产| 六月婷婷一区| 亚洲最新无码中文字幕久久| 日韩av电影一区| 麻豆精品蜜桃| 麻豆精品在线观看| 久久都是精品| 久久精品电影| 国内精品麻豆美女在线播放视频| 日韩久久99| 免费日韩av| 99精品国产一区二区三区| 老司机精品在线| 日本免费一区二区视频| 国产亚洲网站| 国产一区二区三区自拍| 狠狠躁少妇一区二区三区| 国产精品一区二区精品视频观看| 亚洲自啪免费| 高清不卡亚洲| 久久精品欧洲| 91福利精品在线观看| 水蜜桃久久夜色精品一区的特点| 欧美片第1页| 福利片在线一区二区| 麻豆国产欧美日韩综合精品二区| 日本中文字幕不卡| 亚洲一区二区成人| 午夜国产精品视频| 欧美一区二区三区高清视频| 亚洲精品成人图区| 精品亚洲免a| 久久精品一区二区国产| 国产精品久久免费视频| 日本成人中文字幕在线视频| 热久久久久久久| 亚洲免费专区| 日韩激情中文字幕| 日韩高清不卡在线| 日本精品在线播放| 欧美日本一区|