7. Reverse Integer 【整数反转】

描述

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

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

例子
在这里插入图片描述
思路

由于%符号,python 和 c++不一样,python是取模,c++是取余。负数%一个数,取模和取余不一样。所以:python要分正负,c++直接就搞了

答案

  • python
    def reverse(self, x: int) -> int:
        MAX = 2**31-1
        MIN = -2**31
        num=0
        
        flag = 1
        if x<0:
            flag = -1
            x=-1*x
            
        while x:#到0了就结束
            num=num*10+x%10
            x = int(x/10)
            
        num = num*flag
        
        return 0 if num>MAX or num<MIN else num
  • c++
    int reverse(int x) {
        long num=0;//可能会超过范围,所以为Long

        while (x)//x可为正或负,知道为0
        {
            num = num*10+x%10;
            x /= 10;
        }
        
        return (num>INT_MAX || num<INT_MIN)? 0: num;
    }
发布了78 篇原创文章 · 获赞 7 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/puspos/article/details/102964728