(LEEDCODE)Palindrome Number判断回文数

Could negative integers be palindromes? (ie, -1)

If you are thinking of converting the integer to string, note the restriction of using extra space.

You could also try reversing an integer. However, if you have solved the problem “Reverse Integer”, you know that the reversed integer might overflow. How would you handle such case?

There is a more generic way of solving this problem.

不能把数转成字符串,也不能把数前后颠倒对比。 解决办法: 每次对比首尾两个数字,然后把首尾去掉继续比较,首先得到他的位数。 C++:

bool Solution::isPalindrome(int x) {
    if(x<0)
        return false;
    int div = 1;
    while(div<=x/10)
        div *= 10;
     while(x>0)
    {
        if(x/div!=x%10)
            return false;
        x = (x%div)/10;
        div /= 100;
    }
    return true;
}
点赞