如何 return 递归调用一个函数?
How can I return a recursive call to a function?
任务:
编写一个名为is_palindrome的递归函数,它以名为word的字符串作为参数,如果word的长度小于或等于1,则returns为True。如果word的长度大于大于 1,如果 word 的第一个字符与 word 的最后一个字符不同,函数应该 return False。如果 word 的长度大于 1,并且字符串的第一个和最后一个字符相同,函数应该 return is_palindrome() 的结果,参数为 word 及其第一个和最后一个删除的字符(例如 is_palindrome("anna") 应该 return is_palindrome("nn") 的结果)。
我的代码:
def is_palindrome(word):
if len(word) <= 1:
return True
if len(word) > 1:
if word[0] != word[len(word) - 1]:
return False
elif word[0] == word[len(word) - 1]:
return word[1:(len(word) - 1)]
possible_palindrome = input("Enter a word/phrase to check: ")
if is_palindrome(possible_palindrome):
print(possible_palindrome, "is a palindrome")
else:
print(possible_palindrome, "is not a palindrome")
评分反馈:
您需要 return 递归调用 is_palindrome
检查字符串的端点(第一个和最后一个字符),如果相等 return 调用剩余的(除了第一个和最后一个字符之外的所有字符):
def is_palindrome(word):
if len(word) <= 1:
return True
if word[0] != word[-1]:
return False
return is_palindrome(word[1:-1])
示例:
>>> is_palindrome("f")
True
>>> is_palindrome("foo")
False
>>> is_palindrome("foof")
True
任务:
编写一个名为is_palindrome的递归函数,它以名为word的字符串作为参数,如果word的长度小于或等于1,则returns为True。如果word的长度大于大于 1,如果 word 的第一个字符与 word 的最后一个字符不同,函数应该 return False。如果 word 的长度大于 1,并且字符串的第一个和最后一个字符相同,函数应该 return is_palindrome() 的结果,参数为 word 及其第一个和最后一个删除的字符(例如 is_palindrome("anna") 应该 return is_palindrome("nn") 的结果)。
我的代码:
def is_palindrome(word):
if len(word) <= 1:
return True
if len(word) > 1:
if word[0] != word[len(word) - 1]:
return False
elif word[0] == word[len(word) - 1]:
return word[1:(len(word) - 1)]
possible_palindrome = input("Enter a word/phrase to check: ")
if is_palindrome(possible_palindrome):
print(possible_palindrome, "is a palindrome")
else:
print(possible_palindrome, "is not a palindrome")
评分反馈:
您需要 return 递归调用 is_palindrome
检查字符串的端点(第一个和最后一个字符),如果相等 return 调用剩余的(除了第一个和最后一个字符之外的所有字符):
def is_palindrome(word):
if len(word) <= 1:
return True
if word[0] != word[-1]:
return False
return is_palindrome(word[1:-1])
示例:
>>> is_palindrome("f")
True
>>> is_palindrome("foo")
False
>>> is_palindrome("foof")
True