给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
class Solution:
def reverse(self, x: int) -> int:
res = 0
while (x!=0):
digit = x%10
#如果x为负数,需要额外处理
if digit>0 and x<0:
digit -= 10
#判断溢出的条件,如果res为正数
if res>214748364 or (res==214748364 and digit>7):
return 0
#判断溢出的条件,如果res为负数
if res<-214748364 or (res==-214748364 and digit<-8):
return 0
res = res*10+digit
x = (x-digit)//10
return res