— tags: “leetcode刷题记录” —

题目描述
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。

示例 1:

输入: 121
输出: true
示例 2:

输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:

输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
进阶:

你能不将整数转为字符串来解决这个问题吗?

来源:力扣(LeetCode)
1.普通方法解决

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
class Solution(object):
def isPalindrome(self, x):
"""
:type x: int
:rtype: bool
"""

y=0
if x==0: return True
if x<0 or x%10==0:
return False
while x!=0:
y=y*10+x%10
x=x/10
if x<=y:
if x==y or x==y/10: return True


return False

108 ms 12.7 MB
速度超过97%的用户,第一次。。

2.利用字符串解决:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution(object):
def isPalindrome(self, x):
"""
:type x: int
:rtype: bool
"""

x=str(x)
s=''
for i in range(len(x)):
s+=x[len(x)-i-1]
if s==x:
return True
else:
return False
140 ms    12.6 MB