题目
给你一个整数 x ,如果 x 是一个回文整数,返回 true ;否则,返回 false 。
回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。
例如,121 是回文,而 123 不是。
示例
输入:x = 121
输出:true
输入:x = -121
输出:false
解释:从左向右读, 为 -121 。 从右向左读, 为 121- 。因此它不是一个回文数。
解法一
转换成字符串判断
class Solution:
def isPalindrome(self, x: int) -> bool:
s=str(x)
if s[::-1]==s:
return True
else:
return False
解法二
反转整个数字
class Solution:
def isPalindrome(self, x: int) -> bool:
dight=0
rev=0
t=x
if x<0:
return False
else:
while x!=0:
dight=x%10
rev=rev*10+dight
x=(x-dight)//10
if rev==t:
return True
else:
return False
解法三
反转数字优化法,反转一半
class Solution:
def isPalindrome(self, x: int) -> bool:
y=0
dight=0
if x<0 or (x%10==0 and x!=0):
return False
while x>y:
dight=x%10
x=x//10
y=y*10+dight
if x==y or x==y//10:
return True
else:
return False