7. 整数反转
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
思路
- 判断正负性并记录
- 绝对值取正
int
,转str
,切片反转,再转int
- 根据记录添加正负号
- 判读是否符合题目要求的区间
- 返回结果
代码
class Solution:
def reverse(self, x: int) -> int:
flag = 0 if x > 0 else 1
x = int(str(abs(x))[::-1])
x = x if flag == 0 else -x
if x <= 2**31-1 and x > -2**31:
return x
else:
return 0