python - 为什么我得到正确的回文输出但没有输出常规数字?
问题描述
我正在尝试检查一个数字是否是回文。为此,我正在计算第 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
解决方案
不要使用如此复杂的逻辑。使用简单的 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
推荐阅读
- mysql - 多行更新为单个查询
- r - r - 从数据框中同一行中的两个点创建线串
- javascript - 模板助手中的异常:TypeError:无法读取未定义的属性“singleType”
- python - StackLayout 的 Kivy 子部件都具有 (0,0) 的 pos?
- jsf - 如何在 prettyFaces 中使用 captureWith 方法
- jsp - 网站上的 JSP 会话
- c# - 如何选择使用 Selenium WebDriver 和 C# 在标签下定义的下拉菜单项
- database - Docker-compose v3 不持久化 postgres 数据库
- html - 可使用居中文本进行编辑
- html - 当孩子的身高未知时,父母的孩子的滚动条具有最大高度百分比