【发布时间】:2013-07-18 22:57:56
【问题描述】:
给定一个字符串,我需要在该序列中找到特定长度的所有回文的索引,然后将该索引打印在回文长度旁边。
例如,如果我想要 4 个字符长的回文:
seq = 'abbacdefggfhijkkjlmn'
最佳读数是:
[(0,4), (7,4), (13,4)]
我写了一个函数来做这个,但是我有一个小故障。它返回正确的数据集,但它会一遍又一遍地返回它,次数与序列长度一样多。例如,给定上面的序列,它将返回数据集 20 次:
def find_palindromes(seq,y):
L = len(seq)
res = []
for x in seq:
x=0
while x<= L-y:
if seq[x:x+y] == reverse(seq[x:x+y]):
res.append((x,y))
x=x+1
return res
对于我的故障的任何见解将不胜感激。我知道这可能不是最有效的做事方式,但我非常新,只是想弄湿自己的脚。
【问题讨论】:
-
请修正代码中的缩进
-
您正在循环使用
for循环x,然后重新分配x并对其执行while 循环。如果您删除for x in seq行然后修复缩进,您可能会得到您想要的。
标签: python palindrome