leetcode 整数反转

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

示例 1:

输入: 123
输出: 321

 示例 2:

输入: -123
输出: -321

示例 3:

输入: 120
输出: 21

注意:

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

解题:

 1 class Solution:
 2     def reverse(self, x):
 3         """
 4         :type x: int
 5         :rtype: int
 6         """
 7         if x<0:
 8             if x >= 0-2**31:
 9                 if int(0-int(str(abs(x))[::-1])) <= 0-2**31:
10                     return 0
11                 else:
12                     return int(0-int(str(abs(x))[::-1]))
13         else:
14             if x <= 2**31-1:
15                 if int(str(x)[::-1]) > 2**31-1:
16                     return 0
17                 else:
18                     return int(str(x)[::-1])

运行截图:

 

posted @ 2019-02-27 08:58  mf95  阅读(302)  评论(0编辑  收藏  举报