力扣7. 整数反转

Posted 幽殇默

tags:

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

在这里插入图片描述
https://leetcode-cn.com/problems/reverse-integer/

class Solution {
public:
    int reverse(long long int x) {
       bool flag=false;
       if(x<0) flag=true,x=-x;
       long long int ans=0;
       while(x)
       {
           ans=ans*10+x%10;
           x/=10;
       }
       if(flag) ans=ans*-1;
       if((ans>pow(2,31)-1)||ans<(-1*pow(2,31))) return 0;//过界了
       return ans;
    }
};

在c语言中负数取模还是负数,故其实不用特判

class Solution {
public:
    int reverse(int x) {
        long long int ans=0;
        while(x)
        {
            ans=ans*10+x%10;
            x/=10;
        }
        if(ans>INT_MAX) return 0;
        if(ans<INT_MIN) return 0;
        return ans;
    }
};

完美做法,题目给的是int范围,故我们还是用int

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

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

7.整数反转Java版,每日一题系列(此题来自力扣网)

7.整数反转Java版,每日一题系列(此题来自力扣网)

7. 整数反转(leetcode力扣算法 - java / rust)

7. 整数反转(leetcode力扣算法 - java / rust)

力扣初级算法——整数反转

LeetCode 力扣7. Reverse Integer 整数反转 Java 解法