我试图编写一个递归的函数来判断字符串是否是回文,但我得到的只是一个无限循环,我不知道问题出在哪里
def isPalindrome(S):
listush=list(S) #listush=['a', 'b', 'n', 'n', 'b', 'a']
length=len(listush) #length=6
if length==0 or length==1:
return S, "is a palindrome!"
elif listush[0]!=listush[-1]:
return S, "is not a palindrome!"
else:
del listush[0]
del listush[-1]
return isPalindrome(S)
print isPalindrome("abnnba")
没有必要创建列表。python字符串已经是可索引的序列。在
更好的是,我们可以使用切片,让函数返回}而不是一个包含文本的元组,这样,
True
和{isPalindrome()
就变成了一个单行线:首先,正确地缩进代码。在
其次,使用相同的参数再次调用函数。使用要从中删除或从“S”中删除的“listush”列表调用,并使用S参数递归。在
关于你的代码,我想说一些事情
True
或{这里有一个例子。在
就这么简单。在
相关问题 更多 >
编程相关推荐