给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123 输出: 321示例 2:
输入: -123 输出: -321示例 3:
输入: 120 输出: 21注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
一看题觉得很简答,然后就写出来;
class Solution(object):
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
if -2**31<x<2**31-1:
return x
temp = str(x)
cha = ""
if(temp[0] == "-"):
temp = temp[1:]
cha = "-"
re = [temp[len(temp)-1-i] for i in range(len(temp))]
return int(cha+"".join(re))
然后出了各种错误:发现反转没有理解对,然后看聊下别人的代码,改正之后的代码:
class Solution(object):
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
symbol = x>0
x = str(x)
n = len(x)
y = 0
if(symbol):
for i in range(n):
y = int(x[n-1-i]) + y*10
if(y>(2**31)-1):
return 0
else:
for i in range(n-1):
y = int(x[n-i-1]) + y*10
if(y>2**31):
return 0
y = -y
return y