给定一个字符串,将其拆分为尽可能少的字符串,使每个字符串都是回文
k = "racecarannakayak"
palin = [] # to get palindrome strs
i, j = 0, 2
while j != len(k) + 1:
if k[i:j] == k[:j][::-1]:
palin.append(k[i:j])
i += 1
j += 1
print(palin)
结果是["racecar"]
,但应该是["racecar", "anna", "kayak"]
我的代码有什么问题
Tags:
您的代码存在一些问题
i
保持迭代,即使您的点j
是 在大多数迭代中都比它小。意思是你在做什么 像k[10:2]
这样的东西毫无意义李>j
只在整个数组上工作一次。意思 您需要多次传递,或者需要将i
指针重置为 如果找到回文,则j
指针的最后位置李>k[i:j]==k[i:j][::-1]
而不是你写的李>如果你考虑以上3点并做出必要的改变,你应该对你的代码得到正确的结果如下:
相关问题 更多 >
编程相关推荐