1. 读懂题目
2. 分析,推导解法,产生思路。
解题思路:
(1) 利用python中的[::-1],直接得到回文数,并比较。耗时和内存较多。
class Solution(object):
def isPalindrome(self, x):
flag = False
str1 =str(x)
str2 = str1[::-1]
if str1 == str2 :
flag = True
return flag
(2)对负数;数末尾为0(0除外):直接false,再处理正数。
class Solution(object):
def isPalindrome(self, x):
flag = False
if x < 0 or (x % 10 == 0 and x != 0) :
return flag
x_reverse = 0
temp = x
while temp > 0:
x_reverse = x_reverse * 10 + temp % 10
temp = int(temp / 10 )
if x_reverse == x :
flag = True
return flag
(3)处理正数时,只反转一般的数字,此时需要考虑数据的长度(奇数or偶数)
class Solution(object):
def isPalindrome(self, x):
if x < 0 or (x % 10 == 0 and x != 0) :
return False
x_reverse = 0
while x > x_reverse:
x_reverse = x_reverse * 10 + x % 10
x = int(x / 10 )
if (x == x_reverse) or (x == x_reverse//10):
return True