zoukankan      html  css  js  c++  java
  • 算法练习-Palindrome Number

    判断回文整数

    来源

    https://leetcode.com/problems/palindrome-number/

    要求

    判断一个整数是不是回文数,尽量减少内存暂用。

    思路

    可能的情况:

    • 负数的应当作非回文数
    • 0-9 是回文数
    • 判断时可能会溢出

    >9 的数开始判断,先计算出整数有多少位,这其中要处理出现溢出的情况,例如整数 x = 34043,计算出位数 len = 5

    以此判断最高位和最低位是否相同,若相同 令 x = 404,继续判断。

    实现代码

    bool isPalindrome(int x) {
        static const int MAX_INT = (int) ((unsigned)~0 >> 1);
        if(0 > x){
            return false;
        }
        
        int len = 1, decimal = 1;
        while(x >= decimal*10){ // 计算整数有多少位
            decimal *= 10;
            ++len;
            if(MAX_INT / decimal < 10)
            { 
                ++len;
                break;
            }
        }
        
        if(len == 1){
            return true;
        }
        else{
            int low = 1;
            while(len-- > low++){
                if(x / decimal == x % 10){
                    x = (x % decimal - x % 10) / 10;
                    decimal /= 100;
                }
                else{
                    return false;
                }
            }
            return true;
        }
    }
    
  • 相关阅读:
    vim技巧2
    vim技巧1
    网站压力测试工具
    CentOS mysql安装
    破解root
    渐进式性能监测案例
    网络监测介绍
    I/O检测介绍
    虚拟内存介绍
    @Slf4j
  • 原文地址:https://www.cnblogs.com/nobodyzhou/p/5554460.html
Copyright © 2011-2022 走看看