python-3.x - 字符串匹配 KMP
问题描述
我正在尝试为 KMP 算法编写 lps 函数。但是,我收到了这个错误。
if pattern[i] == pattern[j]:
TypeError: list indices must be integers or slices, not str
这是我的代码
def get_lps(pattern):
pattern = list(pattern)
lps = [0 for i in range(len(pattern))]
i = 1
j = 0
while i!= len(pattern) :
if pattern[i] == pattern[j]:
lps[i] = j + 1
i += 1
j += 1
else :
if j!= 0:
j = pattern[j-1]
else:
lps[i] = 0
i += 1
return lps
print(get_lps("abcabcaa"))
解决方案
推荐阅读
- java - Spring Boot批处理:如何使用作业参数运行作业
- python - 使用 sudo python3 但不使用 python3 时导入 aws 凭据时出错
- swiftui - Xcode 11 beta 3 在同时使用 NavigationLink、@EnvironmentObject 和 List 时崩溃
- crystal-reports - 为什么水晶报告在我编写代码时提示我输入参数字段值
- random - 是否可以预测计算机会随机选择什么数字?
- java - NoSuchBeanDefinitionException 与多个 JdbcTemplate 和 Spring Boot
- c++ - 如何修复“二进制表达式的无效操作数”?
- node.js - React Native 教程:npm install 冻结
- postgresql - 具有不同名称的重复列
- android - 我在 xamrin android 中使用 RelativeLayout 的布局代码有问题吗?