# author: Marcin Cherek
# python version: 2.7.11
# Date: 2 of Mai 2016
# language: English
# Title: KMP Algorithm python implementation
#Build the Prefix table
def lspTable(pattern):
lsp = [0] * len(pattern)
lsp[0] = 0
for i in range(1,len(pattern)):
j = int(lsp[i-1])
while(j>0 and pattern[i]!=pattern[j]):
j=int(lsp[j-1])
if(pattern[i] == pattern[j]):
j+=1
lsp[i]=j
return lsp
def kpm_search(pattern, text):
lsp = lspTable(pattern)
j = 0
for i in range(0,len(text)):
while( j>0 and text[i] != pattern[j]):
j = lsp[j-1]
if(text[i]==pattern[j]):
j+=1
if(j==len(pattern)):
return i-(j-1) #returns the position
return -1 #Not found
Monday, May 2, 2016
KMP Algorithm in Python
Location:
Zürich, Schweiz
Subscribe to:
Post Comments (Atom)

No comments:
Post a Comment