0

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

否则,该函数应检查第一个和最后一个整数是否相同并递归继续。如果没有,返回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])
4

1 回答 1

5

if t == 0 or 1:总是正确的,因为这被阅读为if (t == 0) or (1):并且1永远是正确的。

改为:if t in [0,1]:或干脆if len(lst) < 2:

于 2015-11-16T19:55:28.247 回答