题目描述如下
给你一个 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 = xtotal = 0a = -1if (num < 0):num = abs(num)while num>0:temp = num % 10num = num // 10total = total*10+temptotal = a*totalelif(num >= 0):while num>0:temp = num % 10num = num // 10total = total*10+tempif (2**31 -1 >total> -2**31):return total else:return 0