题目描述
判断一个整数是否是回文数。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
示例 1:
输入: 121
输出: true
示例 2:
输入: -121
输出: false
解释: 从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
示例 3:
输入: 10
输出: false
解释: 从右向左读, 为 01 。因此它不是一个回文数。
进阶:
你能不将整数转为字符串来解决这个问题吗?
来源:力扣(LeetCode)
1.普通方法解决
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.利用字符串解决:
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