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