gpt4 book ai didi

python - Karp-Rabin 模式匹配算法的简单实现

转载 作者:太空宇宙 更新时间:2023-11-03 14:43:20 24 4
gpt4 key购买 nike

我在实现 Karp-Rabin 的简单版本时遇到问题模式行进者;我没有得到预期的结果。这是我的例子;

string='today is a good day'
sub='good'

我想在上面的字符串中找到合适的模式。

def kapr(n,m):
for i in range(len(n)-len(m)+1):
for j in range(len(m)):
if n[i+j-1]!=m[j]:
continue
return i
return not found

Print (kapr(string, sub))

输出=0预期输出=11,应与字符串中good的偏移量相对应。

感谢您的帮助。

最佳答案

您想要中断而不是继续。 continue 将进入内循环的下一次迭代,而 break 将退出内循环。此外,您不会使用break直接跳转到外循环的下一次迭代,因此您将点击return i语句。要阻止这种情况发生,您可以使用 for/else 分支。

例如

for j in range(len(m)):
if n[i+j-1]!=m[j]:
break
else:
return i

如果内部循环正常完成,它只会返回 i

它返回的索引也不是零索引,因此通过上述修改,它将返回 12。如果您希望它是零索引,那么更新应该很简单!

关于python - Karp-Rabin 模式匹配算法的简单实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46430564/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com