Python字符串匹配算法KMP實(shí)例
本文實(shí)例講述了Python字符串匹配算法KMP。分享給大家供大家參考。具體如下:
#!/usr/bin/env python #encoding:utf8 def next(pattern): p_len = len(pattern) pos = [-1]*p_len j = -1 for i in range(1, p_len): while j > -1 and pattern[j+1] != pattern[i]: j = pos[j] if pattern[j+1] == pattern[i]: j = j + 1 pos[i] = j return pos def kmp(ss, pattern): pos = next(pattern) ss_len = len(ss) pattern_len = len(pattern) j = -1 for i in range(ss_len): while j > -1 and pattern[j+1] != ss[i]: j = pos[j] if pattern[j+1] == ss[i]: j = j + 1 if j == pattern_len-1: print 'matched @: %s' % str(i-pattern_len+1) j = pos[j] kmp(u'上海自來水來自海上海', u'上海')
希望本文所述對(duì)大家的Python程序設(shè)計(jì)有所幫助。
相關(guān)文章
DJango的創(chuàng)建和使用詳解(默認(rèn)數(shù)據(jù)庫(kù)sqlite3)
今天小編就為大家分享一篇DJango的創(chuàng)建和使用詳解(默認(rèn)數(shù)據(jù)庫(kù)sqlite3),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-11-11
Python對(duì)比校驗(yàn)神器deepdiff庫(kù)使用詳解
deepdiff模塊常用來校驗(yàn)兩個(gè)對(duì)象是否一致,包含3個(gè)常用類,DeepDiff,DeepSearch和DeepHash,其中DeepDiff最常用,可以對(duì)字典,可迭代對(duì)象,字符串等進(jìn)行對(duì)比,使用遞歸地查找所有差異,本文給大家講解Python對(duì)比校驗(yàn)神器deepdiff庫(kù),感興趣的朋友一起看看吧2023-04-04
python快速進(jìn)階利用Tkinter定制一個(gè)信息提示框
這篇文章主要介紹了python快速進(jìn)階利用Tkinter定制一個(gè)信息提示框,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-07-07
python3.4用函數(shù)操作mysql5.7數(shù)據(jù)庫(kù)
這篇文章主要為大家詳細(xì)介紹了python3.4用函數(shù)操作mysql5.7數(shù)據(jù)庫(kù),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-06-06
關(guān)于python中readlines函數(shù)的參數(shù)hint的相關(guān)知識(shí)總結(jié)
今天給大家?guī)淼氖顷P(guān)于Python函數(shù)的相關(guān)知識(shí),文章圍繞著python中readlines函數(shù)的參數(shù)hint展開,文中有非常詳細(xì)的介紹及代碼示例,需要的朋友可以參考下2021-06-06
Python使用Flask編寫一個(gè)網(wǎng)站的代碼指南
使用Flask編寫一個(gè)網(wǎng)站是一個(gè)相對(duì)簡(jiǎn)單且有趣的過程,Flask是一個(gè)用Python編寫的輕量級(jí)Web應(yīng)用框架,它易于上手,同時(shí)也非常強(qiáng)大,適合構(gòu)建從簡(jiǎn)單的博客到復(fù)雜的Web應(yīng)用的各種項(xiàng)目,以下是一個(gè)使用Flask編寫簡(jiǎn)單網(wǎng)站的指南,包括代碼示例,需要的朋友可以參考下2024-11-11

