您的位置:首页 > 其它

[leetcode]反转整数

2018-09-13 20:29 302 查看
给定一个 32 位有符号整数,将整数中的数字进行反转。

示例 1:

输入: 123
输出: 321

示例 2:

输入: -123
输出: -321

示例 3:

输入: 120
输出: 21

注意:

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

解法一:

import sys
class Solution(object):
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
max_int = 2 ** 31 - 1
# print max_int
is_negative = -1 if x < 0 else 1
res = 0
if x < 0:
x = x * (-1)
while x != 0:
p = x % 10
x = x / 10

if is_negative < 0:
if res > ((max_int + 1)/10) or (res == ((max_int + 1)/10) and p > ((max_int + 1)%10)):
print "1 %s %s" % (res, p)
return 0
else:
if res > (max_int/10) or (res == (max_int/10) and p > (max_int%10)):
print "2 %s %s" % (res, p)
return 0
res = res * 10 + p
return res * is_negative

解法二:

class Solution(object):
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
res = cmp(x, 0) * int(str(abs(x))[::-1])
return 0 if res < -2 ** 31 or res >= 2 ** 31 else res
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: