Bootstrap

LeetCode(Python实现)—整数反转

7.整数反转

题目大意

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

解题思路

通过强制转换类型将x转换为字符串并使用切片进行反转,再将其转换为整型去除有可能在首位出现的0,再将符号添加上就可。需要注意的是结果需要在 [ − 2 31 , 2 31 − 1 ] [−2^{31}, 2^{31} − 1] [231,2311]内。

def reverse(self, x: int) -> int:
        sign = 1 if x > 0 else -1
        reverse = sign * int(str(abs(x))[::-1])
        if abs(reverse) > 2 ** 31 - 1:
            return 0
        return reverse
;