标签:
/* * 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) { int 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); }
标签:
原文地址:http://www.cnblogs.com/zmyvszk/p/5386547.html