题目描述

Reverse digits of an integer.

反转 int。
tips:
1.如果整数末尾包含 0,怎么输出,比如 10、100;
2.对于 int 反转后的整数,可能会越界。(如果整数越界则返回 0)

Example:

x = 123, return 321
x = -123, return -321

原文地址

思路方法

1.本题我是用 Python 做的,[ : : -1] 可以直接对字符串进行反转;
处理越界的问题,我使用 sys.maxsize,有问题。我也不知道为什么,最后就直接用的数字;

class Solution(object):
    def reverse(self, x):
        if x > 0:
            flag = 1
        else:
            flag = -1
        #把int整数转换为字符串
        strx = str(abs(x))
        #倒序字符串
        r = strx[::-1]
        res = flag * int(r)

        if res > 2147483647 or res < -2147483648:
            return 0
        else:
            return res

2.还有一种思路我并没有去实现,求各个权重的数值,然后重新分配权重。
伪代码如下:

#循序取各位数字
digit = x % 10
#不停的累乘,计算反转数字
ret = ret * 10 + digit
#去掉已经使用过的个位数
x = x / 10


↙↙↙阅读原文可查看相关链接,并与作者交流