美文网首页北美程序员面试干货
LeetCode 9 [Palindrome Number]

LeetCode 9 [Palindrome Number]

作者: Jason_Yuan | 来源:发表于2016-07-12 15:05 被阅读12次

原题

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

解题思路

  • 首先,根据定义,负数不是回文数
  • 把已知数字反转,与原数比较,相等则回文。比如: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

相关文章

网友评论

    本文标题:LeetCode 9 [Palindrome Number]

    本文链接:https://www.haomeiwen.com/subject/swxsjttx.html