给定一个32位有符号整数,一个整数的反转数字。
示例1:
输入:123 输出:321
示例2:
输入:-123 输出:-321
示例3:
输入:120 输出:21
假设我们正在处理一个只能在32位有符号整数范围内存储整数的环境:[ - ^ 31,2 ^ 31 - 1]。出于此问题的目的,假设当反向整数溢出时,函数返回0。
我正在尝试解决reverse int问题,但是后面的解决方案因以下输入而失败。
输入: 1534236469
输出: 9646324351
预期: 0
在我的解决方案中,我正在检查给定的int是否大于最大值或最小值,然后检查它是否为负值。
我的解决方案
import sys
class Solution:
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
if x <sys.maxsize-1 or x > -sys.minsize:
if str(x)[0] == '-':
list_mod = list(str(x))
list_mod.pop(0)
list_mod.append('-')
list_mod.reverse()
join_list = ''.join(list_mod[:])
return int(join_list)
else:
return int(str(x)[::-1])
else:
return 0
答案 0 :(得分:4)
尝试将int转换为string
,然后转换为reverse
,然后将其转换为int
。
<强>实施例强>
a = 1534236469
print(int(str(a)[::-1]))
<强>输出:强>
9646324351
处理负数:
if str(a).startswith("-"):
a = a[1:]
print("-{0}".format(int(str(a)[::-1])))
else:
print(int(str(a)[::-1]))