這篇文章主要介紹了Python字符串匹配算法KMP實現方法,實例分析了Python針對字符串操作的相關技巧,具有一定參考借鑒價值,需要的朋友可以參考下
本文實例講述了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'上海')
希望本文所述對大家的Python程序設計有所幫助。
新聞熱點
疑難解答