classSolution: defisPalindrome(self, x: int) -> bool: # 负数不是回文数 if x < 0: returnFalse # 单个数字是回文数 if x < 10: returnTrue # 计算x的反转数 original = x reversed_num = 0 while x > 0: digit = x % 10 reversed_num = reversed_num * 10 + digit x //= 10 # 比较原始数字和反转后的数字 return original == reversed_num
1 2 3 4 5 6 7
classSolution: defisPalindrome(self, x: int) -> bool: # 负数一定不是回文数(因为会出现 '-') if x < 0: returnFalse # 转字符串反转比较 returnstr(x) == str(x)[::-1]
1 2 3 4 5 6 7 8 9 10 11 12
classSolution: defisPalindrome(self, x: int) -> bool: if x < 0or (x % 10 == 0and x != 0): returnFalse
reversed_half = 0 while x > reversed_half: reversed_half = reversed_half * 10 + x % 10 x //= 10
# 当长度为奇数时,reversed_half // 10 去掉中间数字 return x == reversed_half or x == reversed_half // 10