Given a 32-bit signed integer, reverse digits of an integer.
Example 1:
Input: 123 Output: 321
Example 2:
Input: -123 Output: -321
Example 3:
Input: 120 Output: 21
class Solution:
def reverse(self, x: int) -> int:
MAX_INT = 2**31-1
MIN_INT = - 2**31
#检查输入是否超过32位有符号整数的范围
if x > MAX_INT or x < MIN_INT:
return 0
#将末尾的0去掉
if x%10 == 0 and x != 0:
while x%10 ==0:
x = int(x/10)
a = []
y = x
#将负数转换为正数,进行处理
if x<0:
x=-1*x
#将每个值存入数组
while x/10:
a.append(int(x%10))
x = int(x/10)
sum = 0
#对数组中的值转为数值
for i in range(len(a)):
sum=sum+a[i]*10**(len(a)-i-1)
#将负数还原
if y<0:
sum =-1*sum
if sum > MAX_INT or sum < MIN_INT:
return 0
return sum