问题描述:Determine whether an integer is a palindrome. Do this without extra space.

翻译:判断一个整数是否为回文序列,要求不要使用额外的存储空间。

【c++版】

    class Solution {  
    public:  
        bool isPalindrome(int x) {  
     }  
    };  

解题答案,步骤挺清晰的,思路也清晰:

    class Solution {  
    public:  
        bool isPalindrome(int x) {  
           string tmp;  
           if(!x) return true;  
           else if(x < 0) return false;  
        //   x = abs(x);  
           while(x)  
           {  
               tmp.append(to_string(int(x%10)));  
               x = x/10;  
           }  
           for(int i = 0,j = tmp.size()-1; i <= j ; i++,j--)  
           {  
               if(tmp[i] == tmp[j]) continue;  
               else return false;  
           }  
           return true;  
        }  
    };  

此题有一个bug,就是没说清楚正负数中负数如果回文是否也返回true,如果是那种情况,注释掉的那句就可以派上用场了。

最终结果还不错, 运行效率超过72.84%

img