递归函数似乎没问题,但不会返回False

时间:2015-11-16 19:50:08

标签: python python-2.7 recursion symmetric asymmetric

因此该函数应检查列表是否对称;如果列表为空或者有一个整数,则它是对称的。

否则函数应该检查第一个和最后一个整数是否相同然后递归。如果没有,请返回False

代码似乎是正确的,但我无法弄清楚什么是错的以及为什么它不会返回False

def symm(lst):

    t = len(lst)
    if t == 0 or 1:
        return True

    if t>1:
        if lst[0] == lst[-1]:
            return symm(lst[1:-2])
        else:
            return False

print symm([6,6,6,6,7])

1 个答案:

答案 0 :(得分:5)

if t == 0 or 1:始终为真,因为此内容为if (t == 0) or (1):1始终为真。

更改为:if t in [0,1]:或只是if len(lst) < 2: