两种思路,一种是转成数组(比如字符数组),然后对比两头是否相等。
我是这种思路
class Solution {
public boolean isPalindrome(int x) {
String s = x+"";
char[] cs=s.toCharArray();
int j=cs.length-1;
boolean flag=true;
for(int i=0;i<cs.length/2;i++){
if(cs[i]!=cs[j]){
flag=false;
}
j--;
}
return flag;
}
}
另一种思路是数学思路,从个位开始,取模10,然后算回来,看新的值是否和原值相等;
例如:
123-》 3*10*10+2*10+1,每次循环乘10一次;
class Solution {
public boolean isPalindrome(int x) {
int record = x;
if(x < 0)
return false;
long r = 0;
while(x != 0) {
r = r*10 + x % 10;
x = x / 10;
}
if(r == record)
return true;
return false;
}
}