leetcode_7 整数反转

81 阅读1分钟

要求

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。

如果反转后整数超过 32 位的有符号整数的范围 [−231,  231 − 1] ,就返回 0。

假设环境不允许存储 64 位整数(有符号或无符号)。

示例 1:

输入:x = 123
输出:321

示例 2:

输入:x = -123
输出:-321

示例 3:

输入:x = 120
输出:21

示例 4:

输入:x = 0
输出:0

核心代码

class Solution:
    def reverse(self, x: int) -> int:
        flag = 0
        if x < 0:
            flag = 1
        if flag:
            s = str(x)[1:]
            s = s[::-1]
            x = -1 * int(s)
        else:
            s = str(x)
            s = s[::-1]
            x = int(s)
        if x < -1 * 2 ** 31 or x > 2 ** 31 -1:
            return 0
        return x

image.png

解题思路:我们使用字符串的反转来解决此题,注意两点,一点是判断是不是负数,第二点看数据是否在给定的范围内,比较简单。