题目描述如下
给你一个 32 位的有符号整数 x
,返回将 x
中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1]
,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
示例 1:
输入:x = 123
输出:321
示例 2:
输入:x = -123
输出:-321
示例 3:
输入:x = 120
输出:21
示例 4:
输入:x = 0
输出:0
基本思路
对于负数,首先转成正数,然后就按照正数进行反转,最后*(-1)或者用0减去就可以了
代码如下
class Solution(object):
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
num = x
total = 0
a = -1
if (num < 0):
num = abs(num)
while num>0:
temp = num % 10
num = num // 10
total = total*10+temp
total = a*total
elif(num >= 0):
while num>0:
temp = num % 10
num = num // 10
total = total*10+temp
if (2**31 -1 >total> -2**31):
return total
else:
return 0