注意几个点,不能是负数,不用额外的空间。
思路就是让数字的第一个数和最后一个数比较。然后去掉头和尾。
再继续。
不用担心00002这样的情况,因为不影响计算。
bool isPalindrome(int x) {
if (x<0) return false;
if (x>=0&&x<10) return true;
int len = 1;
int tmpX = x;
while((tmpX=tmpX/10)>0){
len *= 10;
}
while(len >= 10){
int head = x/len;
int tail = x%10;
if(head != tail) return false;
x = x - len*head;
len /= 100;
x = x / 10;
}
return true;
}