首页 > 解决方案 > 为什么这个回文递归函数在所有情况下都给我 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不适用于非回文文本。

在此处输入图像描述

标签: pythonpython-3.xrecursionpalindrome

解决方案


短路评估。

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



推荐阅读