给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。示例
输入: 123
输出: 321
输入: -123
输出: -321
输入: 120
输出: 21
v0.1---执行用时: 100 ms,内存消耗: 6.7 MB
class Solution:
def reverse(self, x: 'int') -> 'int':
li = []
if x%10 == 0:
x = int(x/10)
else:
x = x
y = abs(x)
temp_li = list(str(y))
for i in range(0,len(temp_li)):
a = temp_li[len(temp_li)-1-i]
li.append(a)
re = int(''.join(li))
if x<=0:
re = 0-re
if -2**31 < re < 2**31-1:
return re
else:
return 0
v0.2---执行用时: 76 ms,内存消耗: 6.7 MB,将v0.1中list反转用函数list.reverse()替代
class Solution:
def reverse(self, x: 'int') -> 'int':
li = []
if x%10 == 0:
x = int(x/10)
else:
x = x
y = abs(x)
temp_li = list(str(y))
temp_li.reverse()
li=temp_li
re = int(''.join(li))
if x<=0:
re = 0-re
if -2**31 < re < 2**31-1:
return re
else:
return 0
网友评论