leetcode第8题 回文整形数字判断

题目

给出一个整形数字,判断其是否为回文数字。

例如:
121 是回文 10 不是回文

解题

本题其实不难,思路就是把int转换成str然后再判断是否为回文即可。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
class Solution:
def isPalindrome(self, x):
"""
:type x: int
:rtype: bool
"""
sx = str(x)
length = len(sx)

if length ==1:
return True

mid = length // 2

for index in range(length):
if index <=mid:
if sx[index] == sx[-1-index]:
continue
else:
return False

return True

官方讨论中给出了一种一行代码的python代码,思路就是把字符串倒序排列,然后跟原字符比较是否相等。我比较怀疑这种思路的执行效率,因为即使可以明显判断出来不是回文的数字,也要进行倒序,数字小还好,大的时候应该会有效率上的代价。但是leetcode的测试结果中,好像差别也不是很大。

1
2
3
4
5
6
7
8
class Solution:
def isPalindrome(self, x):
"""
:type x: int
:rtype: bool
"""

return str(x)[::-1] == str(x)
你的支持我的动力