electricbell 发表于 2020-4-6 18:04:39

关于回文联递归解决方案

def hui(n,x,y):
    if x>y:
      return 1
    else:
      if n==n:
            hui(n,x+1,y-1)
      else:
            return 0
n = input('请输入一串字符串:')
lenth = len(n)-1
if hui(n,0,lenth-1):
    print('"%s"是回文联'%n)
else:
    print('"%s"不是回文联'%n)

为什么不管输入什么都是会出来不是回文联 是不能有两个return值吗

永恒的蓝色梦想 发表于 2020-4-6 18:05:36

def hui(n,x,y):
    if x>y:
      return 1
    else:
      if n==n:
            return hui(n,x+1,y-1)
      else:
            return 0

zltzlt 发表于 2020-4-6 18:23:21

这样试试:

def hui(n, x, y):
    if x > y:
      return 1
    else:
      if n == n:
            return hui(n, x + 1, y - 1)    # 你忘了这里 return 了
      else:
            return 0


n = input('请输入一串字符串:')
lenth = len(n) - 1
if hui(n, 0, lenth):    # 不需要减 1
    print('"%s"是回文联' % n)
else:
    print('"%s"不是回文联' % n)

qiuyouzhi 发表于 2020-4-6 18:28:29

代码改成这样试试:
def hui(n,x,y):
    if x>y:
      return 1
    else:
      if n==n:
            hui(n,x+1,y-1)
      else:
            return 0
不然的话,就是光调用,不返回
最后的返回值一定是0

electricbell 发表于 2020-4-6 21:11:08

好谢谢

electricbell 发表于 2020-4-9 11:21:47

qiuyouzhi 发表于 2020-4-6 18:28
代码改成这样试试:

不然的话,就是光调用,不返回


嗯嗯 谢谢
页: [1]
查看完整版本: 关于回文联递归解决方案