【问题标题】:A false recursion错误的递归
【发布时间】:2023-03-13 19:30:03
【问题描述】:

这是一个检查一个数字是否是一个抛投数的程序。 为什么它让我用 str "aaaa" 返回 "none" 答案?

def is_palindrome(str):
  a=len(str)

  if str[0]!= str[a-1]:
    return False
  else:
    str=str[1:a-1]
    print str
    if str=="":
        return True
    else:
        is_palindrome(str)

is_palindrome("aaaa")

【问题讨论】:

  • 我不懂这门语言,但你不会错过return吗?
  • 如果您首先检查索引0a-1,是否不应该使用1a-2 进行递归调用...?
  • 通话不错,我查了。但最终它给我带来的不是真实,而是真实,我不知道为什么。
  • @user2923032 最后一行是is_palindrome(str),你可能想说的是return is_palindrome(str)
  • 请用您使用的编程语言标记您的问题。

标签: python recursion boolean


【解决方案1】:

kqr留下答案,你需要把return is_palindrome(str)

我知道这可能是作业,但如果不是,为什么要递归呢?

>>> def is_palindrome(s1):
...     s1 = s1.lower().strip()
...     return s1 == s1[::-1]
...
>>> is_palindrome("racecar")
True
>>> is_palindrome("rainbow")
False
>>>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-26
    • 2017-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多