9. Palindrome Number

          /*
       * 9. Palindrome Number 
       * 2016-4-12 by Mingyang
       * 这个题目首先有个前提,负数不是palindrome,另外no extra space
       * 所以不能用变成string来做,那么转换为reverse int的时候需要考虑
       * 出界问题,只要一出界,肯定不为
       */
        public static boolean isPalindrome(int x) {
            if (x < 0)
                return false;
            if (x == 0)
                return true;
            long rev = 0;
            int y = x;
            while (x > 0) {
                long dig = x % 10;
                rev = rev * 10 + dig;
                if (rev > Integer.MAX_VALUE)
                    return false;
                x = x/10;
            }
            int res = (int) rev;
            if (res == y)
                return true;
            else
                return false;
        }
        /*
         * 那么下面是网上的代码,也就是说我们不需要走完,只需要把reverse的小
         * 本身才进行,另外就是出来的时候x==rev || x==rev/10才可以
         */
        public boolean isPalindrome1(int x) {
            if (x<0 || (x!=0 && x%10==0)) return false;
            int rev = 0;
            while (x>rev){
                rev = rev*10 + x%10;
                x = x/10;
            }
            return (x==rev || x==rev/10);
        }
原文地址:https://www.cnblogs.com/zmyvszk/p/5386547.html