LeetCode7 反转整数

Posted 苛性氢

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LeetCode7 反转整数相关的知识,希望对你有一定的参考价值。

我的代码:

class Solution {
public:
    int reverse(int x) {
        int sign=x<0?1:0;
        string maxint="2147483647";
        string minint="2147483648";
        //int to string
        string snum="";
        int tem=x;
        char ctem;
        while(tem!=0){
            //standard has itoa
            ctem=abs(tem%10)+0;
            snum=ctem+snum;
            tem/=10;
        }
        std::reverse(snum.begin(),snum.end());
        if(snum.size()==10){
            if(sign==0){
                if(snum>maxint){
                    return 0;
                }
            }
            else{
                if(snum>minint){
                    return 0;
                }
                if(snum==minint){
                    return -2147483648;
                }
            }
        }
        int result=0;
        for(int i=0;i<snum.size();i++){
            result=(snum[i]-0)+result*10;
        }
        if(sign==0){
            return result;
        }
        else{
            return -result;
        }
        
    }
};

一开始24ms,加了关闭同步后12ms。超越96%的代码。

 

别人的代码:

static int x = []() { 
    std::ios::sync_with_stdio(false); 
    cin.tie(NULL);  
    return 0; 
}();

class Solution {
public:
    int reverse(int x) {
        int flag = 1;
        if (x < 0) {
            x = -x;
            flag = -1;
        }
        int64_t sum = 0;
        while (x > 0) {
            sum = sum * 10 + x % 10;
            x /= 10;
        }
        sum = sum * flag;
        return (sum > INT32_MAX || sum < INT32_MIN) ? 0 : sum;
    }
};

5ms。

 

 

以上是关于LeetCode7 反转整数的主要内容,如果未能解决你的问题,请参考以下文章

leetcode7整数反转

LeetCode7. 整数反转python3

LeetCode7. 整数反转

LeetCode7整数反转

LeetCode7 整数反转

LeetCode7. 整数反转