美文网首页leetcode-algorithm
leetcode-009 Palindrome Number

leetcode-009 Palindrome Number

作者: hylexus | 来源:发表于2016-09-21 01:55 被阅读10次

    [TOC]

    P009 Palindrome Number

    Determine whether an integer is a palindrome. Do this without extra space.

    思路分析

    • 负数==>false
    • 从两头对数字逐渐切割,一旦有不同的==>false

    代码

    java

    public class Solution009 {
        public boolean isPalindrome(int x) {
            if (x < 0)
                return false;
            else if (x <= 9)
                return true;
    
            int base = 1;
            // 取得最高位的级数base=power(10,n)
            while (x / base >= 10)
                base *= 10;
            while (x != 0) {
                int left = x / base;
                int right = x % 10;
                if (left != right)
                    return false;
                x -= base * left;// 去掉最高位
                x /= 10;// 去掉最低位
                base /= 100;// 去掉了两位数,base/100
            }
            return true;
        }
    }
    
    

    python

    class Solution009(object):
        def isPalindrome(self, x):
            """
            :type x: int
            :rtype: bool
            """
            
            if x < 0:return False
            elif x <= 9 :return True
            
            base = 1
            
            while x / base >= 10:
                base *= 10
            
            while x != 0:
                l = x / base
                r = x % 10
                if l != r:return False
                
                x -= l * base
                x /= 10
                base /= 100
            
            return True
    
    

    相关文章

      网友评论

        本文标题:leetcode-009 Palindrome Number

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