7. 整数反转

题目

给你一个 32 位的有符号整数 x ,返回 x 中每位上的数字反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
示例 1:

  1. 输入:x = 123
  2. 输出:321

示例 2:

  1. 输入:x = -123
  2. 输出:-321

示例 3:

输入:x = 120
输出:21

示例 4:

输入:x = 0
输出:0

提示:

  • -2^31 <= x <= 2^31 - 1

题解

没事做几道简单题增强自信

class Solution:
    def reverse(self, x: int) -> int:
        s = str(abs(x))
        max_num = 2**31/10
        sign = -1 if x < 0 else 1
        s = s[::-1]
        num = 0
        for c in s:
            if num > max_num:
                return 0
            num = num*10+int(c)
        return sign*num