方法1:就是左右比
class Solution {
public boolean isPalindrome(int x) {
if(x<0){
return false;
}
int n=Math.abs(x);
int help=1;
//下面这个代码确实是越界了,他输入一个正好是int最大值一样的位数,然后乘以10,就越界了
// while(n/help!=0) {
// help*=10;
// }
// help=help/10;
while(n/help>=10){
help*=10;
}
while(n!=0) {
if(n/help!=n%10) return false;
n=n%help/10;
help=help/100;
}
return true;
}
}
方法2;转到数组里,时间复杂度过高,也简单不写了
方法3:直接给数字倒过来
class Solution {
public boolean isPalindrome(int x) {
if(x<0) return false;
int n=x;
int res=0;
int help=0;
while(n!=0){
help=n%10;
res=res*10+help;
n=n/10;
}
return res==x;
}
}