题解 | #回文数字#

回文数字

http://www.nowcoder.com/practice/35b8166c135448c5a5ba2cff8d430c32

运行时间 3ms, 内存占用 420 KB

思想很简单,就是创建一个函数用来提取数字指定位的数字。但是因为 C++ 的 math 库编译时需要指定连接。我不知道能不能用 pow 函数,所以就手动实现了一个比较简陋的,中间调试过程主要是 pow 写错了

class Solution {
    int level;
public:
    // 获取指定 i 位于 pos 位置的数字
    inline int getNumber(int i, int pos){
        // 计算 10 的幂
        int power10 = 1;
        int j = level - pos;
        if(j>0){
            for(;j>0; --j) power10*=10;
        }

        i/=power10;
        return i % 10;
    }
    bool isPalindrome(int x) {
        // 通过按位指针应该可以。不行,内存不是对称的
        if(x<0) return false;
        // 计算 x 有几位
        for(int i = x; i ; i/=10) ++level;
        // 判断回文
        for(int i = 1, j = level; i<j; ++i,--j){
            if(getNumber(x,i)!=getNumber(x,j)) return false;
        }
        return true;
    }
};
全部评论

相关推荐

友友们,我实在是不太明白,校招的话现在大多也是提前实习,然后转正也是需要考核的,考核通过才能转正,那这跟实习转正有什么区别啊
苦闷的仰泳鲈鱼刷了1...:提前实习,是让你提前熟悉业务的,后续是入职后可以减少试用期的(大部分是包入职的);转正实习,要是hc不够或者其他原因,让你正式offer可能都没有,这个风险很大。 ---个人看法和了解到的。
点赞 评论 收藏
分享
不想上班的肱二头肌很...:简历一页,项目突出重点,自我评价可以删掉的
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务