給出一個 32 位的有符號整數(shù),你需要將這個整數(shù)中每位上的數(shù)字進行反轉(zhuǎn)又沾。假設(shè)我們的環(huán)境只能存儲得下 32 位的有符號整數(shù)弊仪,則其數(shù)值范圍為 [?231, 231 ? 1]。請根據(jù)這個假設(shè)杖刷,如果反轉(zhuǎn)后整數(shù)溢出那么就返回 0励饵。示例
輸入: 123
輸出: 321
輸入: -123
輸出: -321
輸入: 120
輸出: 21
v0.1---執(zhí)行用時: 100 ms,內(nèi)存消耗: 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---執(zhí)行用時: 76 ms,內(nèi)存消耗: 6.7 MB,將v0.1中l(wèi)ist反轉(zhuǎn)用函數(shù)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