如何使用递归函数返回“true”或false?

2024-09-27 23:15:14 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的密码:

def mirror(s,s2):

 
  new=""
  if s=="":
      return s


      
  new = mirror(s[1:],s2) +s[0]
  
  if len(new)==len(s2):
  
      if new==s2:
          
              return True
      else:
          
              return False
     

def main():

 print(mirror("dcba","abcd"))

 
main()  

Tags: falsetrue密码newlenreturnifmain
2条回答

如果您像下面这样构造递归函数,您应该会发现一些成功

recurs() {
  if (finalCondition) return true
  if (isReflection) {
    return recurs()
  }
  else {
    return false
  }
}

其思想是通过字符串递归,首先检查结束条件。这可能是一个空字符串或类似的东西。然后检查反射条件是否仍然有效。如果是,则继续递归,否则返回false。当您返回false时,它将一直传播到初始调用。同样,如果您达到结束条件,并且它返回true,这意味着您查看了整个字符串,它们满足了反射要求,true将传播

不熟悉递归的程序员往往会使问题变得更加困难,并且不相信递归能为他们完成工作。为了使这个问题在递归方面有意义,您需要检查每个字符串中的一个字符,然后决定将它们声明为不同的,或者对字符串执行相同的递归操作,直到用完字符(基本大小写)。类似于:

def mirror(s1, s2):

    if not s1 or not s2:  # base case
        return not s1 and not s2  # if both empty, success!

    if s1[0] != s2[-1]:  # compare opposite ends
        return False

    return mirror(s1[1:], s2[:-1])  # recurse on remaining strings

相关问题 更多 >

    热门问题