https://leetcode.com/problems/palindrome-number/
原题如上。
题意解析:
判断一个整数是否是回文整数。像123321,,121,这样的,就是回文整数,负数都不是回文整数。
关键点在于,常数空间,即,不能用数组。
解题思路:
先求得整数最高位的数量级,例如123454321最高位的数量级是1000000000,用整数除以这个数量级,然后对10求余,即可得到该位数字。
点到即止
public boolean isPalindrome(int x) {
//防止溢出情况,先用long型变量存储
long y=(long)x;
//消去符号
if(y<0) return false;
//先确定输入数字的数量级
int left=1,right=1;
while(y/left>=10){
left*=10;
}
//回文判断逻辑
while(left>right){
if(y/left%10 != y/right%10){
return false;
}
right*=10;
left/=10;
}
return true;
}