LeetCode问题9

Palindrome Number

问题描述如下:

Determine whether an integer is a palindrome. Do this without extra space.

关键在不占用额外的空间的情况下生成它的回文序列,然后作差即可。

如果相等,说明回文,如果不相等说明不是回文。

注意点:1、负数不是回文序列;2、在生成整数的回文如果计算过程溢出,当然不是回文(回文序列与自己相同当然是不会溢出的)。

问题难度Easy,代码如下:

class Solution {
public:
    bool isPalindrome(int x) {
        if(x==INT_MAX||x==INT_MIN)
            return false;
        else if(x<0)
            return false;
        int xsave=x;
        int px=0;
        while(x!=0)
        {
            if(px<INT_MAX/10)
            {
                px=px*10+x%10;
                x/=10;
            }
            else
                return false;
        }
        if(px==xsave)
            return true;
        else
            return false;
    }
};

时间消耗仅仅超过30%的提交者。

posted @ 2017-09-28 21:59  蔺小渊  阅读(171)  评论(0)    收藏  举报