Determine whether an integer is a palindrome. Do this without extra space.
一刷ac
解题思路:数学题,要求不适用额外空间,可以将x切分为两部分比较是否相同或者相差一位。或者每次对比首尾两个数字。
public class Solution {
public boolean isPalindrome(int x) {
if(x < 0) return false;
int div = 1;
while(x/div >= 10) div *= 10;
while(x != 0){
int left = x/div;
int right = x % 10;
if(left != right) return false;
x = (x%div)/10;
div /= 100;
}
return true;
}
}
public class Solution {
public boolean isPalindrome(int x) {
if(x < 0 || (x % 10 == 0 && x != 0)) return false;
int res = 0;
while(res < x){
res = res * 10 + x % 10;
x /= 10;
}
return (x == res) || (x == res/10);
}
}