zoukankan      html  css  js  c++  java
  • C++ leetcode::Reverse Integer

    第一天上课,数据库老师说对于计算机系的学生,凡是在课本上学到的专业知识都是过时的。深以为然,感觉大学两年半真的不知道学了什么,为未来感到担忧,C++也不敢说是精通,入门还差不多。最近丧的不行,不管怎么样,每天还是要进步一点点。

    题目:

    Given a 32-bit signed integer, reverse digits of an integer.

    Example 1:

    Input: 123
    Output:  321

    感觉不难,写了才发现自己没考虑溢出的问题,为判断溢出折腾了好久,心好累,提交之后23ms,击败20%。什么时候才能击败100%呢?

    class Solution {
    public:
        int reverse(int x) {
            
            if (x<=9 && x>=-9)
                return x;
            int MAX = INT_MAX/10;
            int MIN = INT_MIN/10;
            int result = 0;
            while(x != 0){
                 if ( result>MAX || result<MIN||(x > 0 && INT_MAX-x%10<result*10)|| (x<0 && INT_MIN-x%10>result*10)  )
                    return 0;
                result = result*10 + x%10;
                x=x/10;
            }
            return result;
        }
    };

    本来想把result设置成long的,但是我的编译器int和long占的字节一样,所以就只能用这样个笨方法来判断,就当是学习了。但是leetcode的编译器int和long不是占相同字节的。

  • 相关阅读:
    wtk2.1的问题
    扫雷大体完成了
    手机操作系统龟兔赛跑 Symbian深信将打败微软
    Practical UML™ A HandsOn Introduction for Developers
    有意思
    进展
    扫雷完成了:)
    Linux
    有关msn的api的两个网站
    csdn中讨论j2me之前途....
  • 原文地址:https://www.cnblogs.com/catpainter/p/8478315.html
Copyright © 2011-2022 走看看