1、自己的两个想法
class Solution:
def isPalindrome(self, x: int) -> bool:
if(x<0):
return False
temp = x
result=[]
# 每一位数字存入数组
while(temp>0):
k=int(temp%10)
result.append(k)
temp=int(temp/10)
relen=len(result)
start=0
end=relen
# 比较
while(start < end):
end=relen-start-1
if(result[start] != result[end]):
return False
start=start+1
return True
数字反转,比较
python不用担心溢出
class Solution:
def isPalindrome(self, x: int) -> bool:
if(x<0):
return False
temp = x
result=0
while(temp>0):
k=int(temp%10)
result = result*10+k
temp=int(temp/10)
if(result == x):
return True
else:
return False
2、python的函数优势
强转str,再倒序,比较
class Solution:
def isPalindrome(self, x: int) -> bool:
return str(x) == str(x)[::-1]
3、官方解答
class Solution:
def isPalindrome(self, x: int) -> bool:
# 只反转一般数字
# 这里我本来一直疑惑如何获取整数长度,官方的解题方法是:判断x>reversedNumber
# 感慨一下别人咋都这么聪明
if(x<0 or (x%10==0 and x!=0) ):
return False
reversedNumber = 0
while(x > reversedNumber):
reversedNumber = reversedNumber * 10 + x % 10
x = int(x / 10)
return (x == reversedNumber or x == int(reversedNumber/10))