题目描述如下
给你一个 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