暴力解法:
用数组存储每一位
bool isPalindrome(int x) {
int a[20];
int len = 0;
if (x < 0) {
return false;
}
while (x != 0) {
a[len] = x % 10;
x /= 10;
len++;
}
len--;
for (int i = 0; i <= len / 2; i++) {
if (a[i] != a[len-i]) {
return false;
}
}
return true;
}
数学解法:
bool isPalindrome(int x) {
int k=x;
if(x<0){
return false;
}
int tr=0;
while(x!=0){
if(tr>INT_MAX/10){
return false;
}
tr=tr*10+x%10;
x/=10;
}
return tr==k;
}
注意判断溢出的情况