普通的思路:先把x转化为字符数组,然后对字符数组进行操作,从两头开始比较是否相等,不相等的话直接false
核心代码:
class Solution {
public boolean isPalindrome(int x){
String[] str=Integer.toString(x).split("");
for(int i=0,j=str.length-1;i<str.length/2;i++,j--){
if(!str[i].equals(str[j])){
return false;
}
}
return true;
}
如果不用这个思路,应该怎么做呢
可以把x这个数进行分类,x如果为负数,肯定不是回文数
然后把x这个数拆开再组合
class Solution {
public boolean isPalindrome(int x){
if(x<0) return false;
int a=x,sum=0;
while(x!=0){
sum=sum*10+x%10;
x=x/10;
}
return sum==a;
}