美文网首页
LeetCode-Palindrome Number

LeetCode-Palindrome Number

作者: Hqmm | 来源:发表于2017-07-03 21:52 被阅读0次

    描述

    • 判断整数是否为回文数,不使用额外的空间(O(1));

    版本一

    • 直观想法就是从低到高取该数的每一位,然后反向乘上10累加起来
    • 代码(AC):
          bool isPalindrome(int x)
         {
              if(x < 0) return false;
              int sum = 0, tmp = x;
              while(x > sum)
              {
                  sum = sum * 10 + x % 10;
                  x =  x / 10;
              }
              return x == tmp;     
          }
      
      
    • 这思路就是反向把该数遍历一遍,解法比较朴实。

    版本二

    ```
    bool isPalindrome(int x) 
    {
        if(x < 0 || (x != 0 && x % 10 == 0)) 
        return false;
        int sum = 0;
        while(x > sum){
            sum = sum * 10 + x % 10;
            x = x / 10;
        }
        return (x == sum) || ( x== sum / 10);
    }
    
    ```
    
    • 思路:该方法优化的地方在于,它只需要把该整数遍历一般就够了,(x == sum) || ( x== sum / 10)即判断该整数偶数位或奇数位的情况;
    • 由于对于类似于10、100...这类数字不适合于该解法,因此在开始直接把这种非回文数给over了

    相关文章

      网友评论

          本文标题:LeetCode-Palindrome Number

          本文链接:https://www.haomeiwen.com/subject/dyizcxtx.html