LeetCode-Palindrome Number

描述

  • 判断整数是否为回文数,不使用额外的空间(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了
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容