7. 整数反转

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例 1:

输入: 123
输出: 321


 示例 2:

输入: -123
输出: -321


示例 3:

输入: 120
输出: 21


注意:

假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−2^31,  2^31 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

 


 思路:

−2^31 =  -2147483648

2^31 − 1 = 2147483647

 

 1 class Solution(object):
 2     def reverse(self, x):
 3         """
 4         :type x: int
 5         :rtype: int
 6         """
 7         # 处理负数
 8         temp = True
 9         if x < 0:
10             temp = False
11             x = abs(x)
12         # 处理被10整除的数
13         while x > 0 and x % 10 == 0:
14             x /= 10
15             x = int(x)
16 
17         ans = 0
18         while x > 0:
19             tar = x % 10
20             x = int(x / 10)
21             ans = ans * 10 + tar
22 
23         if ans > 2147483647 or -ans < -2147483648:
24             return 0
25 
26         if temp:
27             return ans
28         else:
29             return -ans

 

posted @ 2020-04-11 20:06  人间烟火地三鲜  阅读(168)  评论(0编辑  收藏  举报