题目大意:判断回文数字
注意负数不是回文数字
题目思路:
1.将给定数x倒序输出存到给定变量·,将它与x比较是否相等。
但用了额外空间。
2.不用额外空间,直接每次比较数的首位和末尾是否相等,比较后去掉首位和末尾两个数字。
AC代码:
1.
bool isPalindrome(int x) {
int res=0;
int a=x; //x保留初始值,最后作比较
if(x<0) return false;
while(a>0)
{
res=res*10+a%10;
a/=10;
}
if((res==x)&&(res<INT_MAX)) return true;
else return false;
}
2.
bool isPalindrome(int x) {
if(x < 0)
return false;
int len = 1;
while(x / len >= 10)
len *= 10;
while(x > 0) {
int left = x / len;
int right = x % 10;
if(left != right)
return false;
else {
x = (x % len) / 10;
len /= 100;
}
}
return true;
}