代码实现

解法一:整数转字符串

  1. class Solution:
  2. def isPalindrome(self, x: int) -> bool:
  3. positive=str(x)
  4. inverted=positive[::-1]
  5. return positive==inverted

解法二

注意到题目中说,让我们尝试不适用整数转字符串的方法解决这题。
我们可以想到,处理一个数字中各个位置上的值,一般使用%10、/10的方式,所以我们可以想到:
利用 将被/10舍弃的值和剩余的数之间的关系<——>回文数

  1. class Solution:
  2. def isPalindrome(self, x: int) -> bool:
  3. # 特殊情况的提前排除
  4. if x==0:
  5. return True
  6. if x<0 or x%10==0:
  7. return False;
  8. # 注意分割单位数的情况
  9. res=0
  10. while x>res:
  11. t=x%10
  12. res=res*10+t
  13. if res==x or x//10==res:
  14. return True
  15. x=x//10
  16. return False

Python版[leetcode]9. 回文数(难度简单)