Determine whether an integer is a palindrome. Do this without extra space.
本题是判断一个数是否是回文数。
代码如下:
bool isPalindrome(int x) {
int max = x;
int min = 0;
while(max >0){
min *= 10;
min+= max %10;
max /=10;
}
return min==x;
}
有评论指出上面这种方法可能会溢出,不溢出的解答如下:
int isPalindrome(int x)
{
if(x < 0)
return false;
int len = 1;
while(x/len >= 10)
len *= 10;
while(x != 0)
{
int high = x /len;
int low = x %10;
if(high != low)
return false;
x = (x%len) / 10;
len /= 100;
}
return true;
}