我目前正在学习Python课程,目前正在努力完成我的一部分作业。
问题是要求我们构造一个检查字符串以查看它是否是回文的函数。我遇到的问题是,我的教练提供的一项测试是针对回文"从不奇怪甚至是#34;其中包含空格。这些空格导致我的功能失败,因为它不会只使用短语中的字母。
我目前的代码是:
def is_palindrome(phrase):
return phrase == phrase[::-1]
她正在测试代码:
assert is_palindrome("Never odd or even")
任何帮助将不胜感激!感谢。
答案 0 :(得分:1)
我认为这就是你想要的: -
is_palindrome("Never odd or even".replace(" ", "").lower())
或
如果您想更改功能,那么您的功能如下:
def is_palindrome(phrase):
phrase=phrase.replace(" ","").lower()
return phrase == phrase[::-1]
您可以使用is_palindrome("Never odd or even")
答案 1 :(得分:0)
首先删除空格,然后使用递归,仅检查第一个和最后一个字符是否相同,在内部部分递归。
def is_palindrome(x):
x = "".join(x.split()).lower()
if (len(x) <= 1): return True
if x[0] != x[-1]: return False
return is_palindrome(x[1:-1])