python - 如何返回对函数的递归调用?
问题描述
任务:
编写一个名为 is_palindrome 的递归函数,它以一个名为 word 的字符串作为其参数,如果 word 的长度小于或等于 1,则返回 True。如果 word 的长度大于 1,如果 word 的第一个字符,该函数应返回 False与单词的最后一个字符不同。如果 word 的长度大于 1,并且字符串的第一个和最后一个字符相同,则该函数应该返回 is_palindrome() 的结果,其中 word 的参数删除了它的第一个和最后一个字符(例如 is_palindrome("anna ") 应该返回 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")
评分反馈:
您需要返回对 is_palindrome 的递归调用
解决方案
检查字符串的端点(第一个和最后一个字符),如果相等,则返回对其余字符的调用(除第一个和最后一个字符之外的所有字符):
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
推荐阅读
- java - 动态创建java类并在运行时编译实例化
- python - 继续将 API 响应写入 json 文件
- powershell - 使用脚本内的凭据以管理员身份运行 powershell 脚本
- python - 使用基于规则的处理读取 Python 3 中开始词和结束词之间的行
- xamarin - xamarin.forms - 使用多部分/表单数据上传多个图像和文件
- python-3.x - 将十六进制代码列表转换为 Seaborn 调色板
- highcharts - Stacked Bar Highcharts 如何显示值
- java - 是否可以在 ingiteRepository 中使用“findbyId”方法?
- flutter - 如何在颤动的图像上设置具有不同文本的编辑文本?
- postgresql - 构造数组文字作为 PL/pgSQL 函数的输入