• [Leetcode]-Palindrome Number


    Determine whether an integer is a palindrome. Do this without extra space.
    题目:推断int数据是否为回文数
    注意:负数不是回文数,0是最小的回文数
    思路:此题和前面一道 求int数的反序差点儿相同http://blog.csdn.net/xiabodan/article/details/46674133
    1、第一种解法不须要边界推断,暴力求解。依次比較最后一位与第一位、倒数第二位与第二位……….一直比較N/2次。N为数据x的十进制位数
    2、另外一种解法因为须要对数据x取反系,所以要边界检查。当然也能够採用一个long long的数据去存反序数据r

    bool isPalindrome(int x) {
    
        //解法1
     /*
        int n = 0;
        int tem = x;
        int i = 0;
        if(x < 0) return false;
        while(tem)
        {
            n++;
            tem = tem / 10;
        }
        int m = n;
        for(i=0;i<n/2;i++)
        {
            if(((x/(int)pow(10,i))%10) != (x/(int)pow(10,m-1))%10)
                return false;
            m--;
        }
        return true;
     */
        //解法2 
        int INT_MAX_DIV10 = INT_MAX / 10;
    
        int r = 0;
        if(x<0) return false;
        if(x<10) return true;
        int t = x;
        int tem = 0;//边界缓存
        while(x)
        {
            if(r > INT_MAX_DIV10) 
                return 0;
            r = r * 10 ;
            tem = x % 10 ;
            if(INT_MAX - tem < r) 
                return 0;
            r = r + tem;
            x = x/10;
        }
        return (r == t);   
    }
  • 相关阅读:
    常用的STL
    CString,string,char数组的转换
    linux知识
    十一种通用滤波算法(转)
    修复被勒索病毒cl0p损坏的svn代码
    android shell 转发代理shell示例
    3proxy配置
    windbg调试写dmp,随机名字
    nexus6p刷机注意
    mysql语句学习
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5179176.html
Copyright © 2020-2023  润新知