【发布时间】:2018-09-26 12:42:08
【问题描述】:
给定一个 32 位有符号整数,反转整数位。
示例 1:
输入:123 输出:321
示例 2:
输入:-123 输出:-321
示例 3:
输入:120 输出:21
假设我们正在处理的环境只能存储 32 位有符号整数范围内的整数:[−2^31, 2^31 − 1]。为了解决这个问题,假设你的函数在反转整数溢出时返回 0。
我正在尝试解决反转 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
【问题讨论】:
-
你正在测试——并且拒绝——太快了。
1534236469适合带符号的 int,但它的反向不适合。 -
@usr2564301,那么我应该如何处理这种情况。
-
原版可以通过这个测试吗?然后在之前测试(就像你正在做的那样)。但是倒车后也要测试。但顺便说一下,我不太确定你的测试是否正确。
标签: python