搜索
您的当前位置:首页正文

LeetCode 9 [Palindrome Number]

来源:二三娱乐

原题

判断一个整数是不是回文数。不要使用额外空间。

解题思路

  • 首先,根据定义,负数不是回文数
  • 把已知数字反转,与原数比较,相等则回文。比如:12321 反转是 12321,12321 == 12321,所以返回True
  • 如何获得每一位上的数字
  • 12321 % 10 = 1,获得个位数,12321 / 10 = 1232, reverse = 1
  • 1232 % 10 = 2, 获得十位数,1232 / 10 = 123,reverse = 1 * 10 + 2
  • 123 % 10 = 3, 获得百位数,123 / 10 = 12,reverse = 12 * 10 + 3
  • 12 % 10 = 2, 获得千位数,12 / 10 = 1,reverse = 123 * 10 + 2
  • 1 % 10 = 1, 获得万位数,1 / 10 = 0,reverse = 1232 * 10 + 1 = 12321
  • 以此类推,while循环,0时结束

完整代码

class Solution(object):
    def isPalindrome(self, x):
        """
        :type x: int
        :rtype: bool
        """
        if x < 0 :
            return False
            
        temp = x
        revt = 0
        while temp:
            revt = revt * 10 + temp % 10
            temp /= 10
        return revt == x
Top