首页 > 解决方案 > 为什么我得到正确的回文输出但没有输出常规数字?

问题描述

我正在尝试检查一个数字是否是回文。为此,我正在计算第 k 个元素等于第 (nk) 个元素的次数。如果该数字等于 string 的长度,则它是回文。我确实得到了回文的正确输出,但当数字不是回文时绝对没有输出(k)。参考代码:

T = int(raw_input())
L = []
for i in range(0,T):
    alpha = int(raw_input())
    L.append(alpha)
print L

for i in range(0,len(L)):
    L[i] = str(L[i])
print L

for i in range(0,len(L)):
    k = 0
    while k < len(L[i]) :
        if L[i][k] == L[i][len(L[i])-(k)-1]:
            k = k + 1
    print k

标签: pythonpython-2.7palindrome

解决方案


不要使用如此复杂的逻辑。使用简单的 pythonic [::-1] 来反转字符串。

In [1]: a = 1234554321

In [2]: def pal(a):
   ...:     if a == a[::-1]:
   ...:         return True
   ...:     else:
   ...:         return False
   ...:

In [3]: pal(str(a))
Out[3]: True

推荐阅读