检查回文的功能中的错误在哪里?


问题内容

下面给出的代码检查列表是否为回文。它为983提供了正确的输出。我在哪里出错?

def palindrome(num):
    flag=0
    r=num[::-1]
    for i in range (0, len(num)-1):
        if(r[i]==num[i]):
            flag=1
        else:
            flag=0
    return flag

问题答案:

如果不匹配,您应该立即返回。另外,您只需要迭代一半的长度即可:

def function(...):
    ...
    for i in range (0, (len(num) + 1) / 2):
        if r[i] != num[i]:
            return False
    return True

顺便说一句,您不需要该循环。您可以简单地执行以下操作:

def palindrome(num):
    return num == num[::-1]