【leetcode❤python】 9. Palindrome Number

#回文数
#Method1:将整数转置和原数比较,一样就是回文数;负数不是回文数
#这里反转整数时不需要考虑溢出,但不代表如果是C/C++等语言也不需要考虑
class Solution(object):
    def isPalindrome(self, x):
        """
        :type x: int
        :rtype: bool
        """
        if x<0:return False
        #负数不是回文数,return False
        xre=x
        ans=0
        while x>0:
            ans=ans*10+x%10
            x=x//10
        
        if ans>21474836547:
            ans=0
        print ans ,xre
        return ans==xre


#Method2:不反转整数,将数字逐个分离,比较最前与最后是否一样
class Solution(object):
    def isPalindrome(self, x):
        """
        :type x: int
        :rtype: bool
        """
        if x<0:return False
        #负数不是回文数,return False
        digits=1
        while x/digits>=10:
            digits*=10
        
        while digits>1:
            right=x%10
            left=x/digits
            if left!=right:return False
            x=(x%digits)/10
            digits/=100
        
        return True

posted @ 2016-10-13 10:40  火金队长  阅读(329)  评论(0编辑  收藏  举报