给你一个 32 位的有符号整数 x
,返回将 x
中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1]
,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
示例 1:
输入:x = 123 输出:321
示例 2:
输入:x = -123 输出:-321
def reverse(self, x: int) -> int:
#定义一个反转整数的函数,方便复用
def num(x):
n = len(str(x)) #获取数值长度
a = 0 #定义一个变量用于存储反转数值
for i in range(1,n+1):
a+=x%10*10**(n-i) #我们观察到只要每次%10,就能获取一个数的最后一个数
x=x//10 #相应的,x应该板除掉原来的最后一位数值,刷新成新的数
if a>=-2**31 and a<=2**31-1: #这里作一个范围的判断
return a
else:
return 0
#分类讨论x的数值
if x>0:
return num(x)
elif x<0:
return -num(-x)
else:
return 0
if __name__=='__main__':
x = 123
print(reverse(x))