Python 3.x 字符串匹配KMP

Python 3.x 字符串匹配KMP,python-3.x,Python 3.x,我正在尝试为KMP算法编写lps函数。但是,我得到了这个错误 if pattern[i] == pattern[j]: TypeError: list indices must be integers or slices, not str 这是我的密码 def get_lps(模式): 模式=列表(模式) lps=[0表示范围内的i(len(模式))] i=1 j=0 而我len(图案): 如果模式[i]==模式[j]: lps[i]=j+1 i+=1 j+=1 其他: 如果j!=0: j=模

我正在尝试为KMP算法编写lps函数。但是,我得到了这个错误

if pattern[i] == pattern[j]:
TypeError: list indices must be integers or slices, not str
这是我的密码

def get_lps(模式):
模式=列表(模式)
lps=[0表示范围内的i(len(模式))]
i=1
j=0
而我len(图案):
如果模式[i]==模式[j]:
lps[i]=j+1
i+=1
j+=1
其他:
如果j!=0:
j=模式[j-1]
其他:
lps[i]=0
i+=1
返回lps
打印(获取lps(“abcabcaa”))

你有一行
j=pattern[j-1]
,pattern是一个字符串,所以
pattern[j-1]
(一个字符字符串)哦,愚蠢的错误,干杯兄弟。你有一行
j=pattern[j-1]
,pattern是一个字符串,所以
pattern[j-1]
(一个字符字符串)哦,愚蠢的错误,干杯兄弟。