首先,负数和小于10的个位数一定不是回文数。其他情况,例如12233,需要比较2次,第一次比较万位与个位数,第二次比较十位数和千位数。
class Solution:
def isPalindrome(self, x):
"""
:type x: int
:rtype: bool
"""
l = len(str(x)) #取长度
r = l - 1
if x < 0: #x为负数
return False
if l == 1: #x为个位数
return True
iter = l//2 #需比较次数
element1 = 0
element2 = 0
count = 0 #累计element1和element2相等的次数
for i in range(iter):
element1 = (x//(10**(r-i)))%10 # 从个位开始 例12233,从右向左取,个位,十位
element2 = (x//(10**(i)))% 10 # 从高位开始 从左向右取,万位,千位
if element1 == element2:
count += 1
else:
i += 1
return False
if count == iter:
return True