Python中整数的反转数字

时间:2018-04-16 17:23:36

标签: python

给定一个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

1 个答案:

答案 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]))