python - 为什么这个回文递归函数在所有情况下都给我 True?
问题描述
我试图编写回文函数的递归版本。但它在所有情况下都给了我True 。为什么?
def isPalindrome(inputString):
if len(inputString)==0 or 1:
return True
elif inputString[0]==inputString[-1]:
return isPalindrome(inputString[1:-1])
else:
return False
为什么False不适用于非回文文本。
解决方案
短路评估。
def is_palindrome(input_string):
if len(input_string) == 0 or len(input_string) == 1:
return True
elif input_string[0] == input_string[-1]:
return is_palindrome(input_string[1:-1])
else:
return False
print(is_palindrome('your_string')) # False
推荐阅读
- python - 如何使用 Python 驱动程序加速将 execute_async 插入 Cassandra
- javascript - 节点 js 表示服务器集群进程应该侦听多个套接字还是一个?
- javascript - 推迟wordpress插件css/script好不好
- mysql - 不正确的日期时间值“2019-06%” - 查询有效,但有警告
- awk - 将序列连接到fasta文件中的ID
- c++ - 来自 boost 的 udp 服务器不能在多线程上工作,但只能在主线程上工作
- html - 设置在浏览器中查看 html 页面的最小缩放量
- azure-devops - Azure Pipelines 中变量的最大长度是多少?
- c# - c# regex 用于重复多次的字符串
- sql - 将两个 SQL 查询与 UNION 组合时类型不匹配