给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
输入:x = 123 输出:321 输入:x = -123 输出:-321 输入:x = 120 输出:21
输入:x = 0 输出:0
那也就是说如果有溢出就会输出0。
我的总体思路是直接将数字转换为字符串进行反转,但是这种办法需要先加上整数正负的判断,否则就会出现例如-123反转之后输出321-的情况,字符串翻转我选择的是切片的方式:x[::-1],当然也可以使用reversed(),以下是我的代码:
x = -1102
def reverse(num):
if num < 0:
x = str(num)[1:]
result = int(x[::-1])*(-1)
else:
x = str(num)
result = int(x[::-1])
if result < -2**31 or result > 2**31-1:
return 0
return result