
chaoxi_todo.jpg
題目
給出一個 32 位的有符號整數(shù),你需要將這個整數(shù)中每位上的數(shù)字進(jìn)行反轉(zhuǎn)。
示例 1:
輸入: 123
輸出: 321
示例 2:
輸入: -123
輸出: -321
示例 3:
輸入: 120
輸出: 21
注意:
假設(shè)我們的環(huán)境只能存儲得下 32 位的有符號整數(shù),則其數(shù)值范圍為 [?231, 231 ? 1]。請根據(jù)這個假設(shè),如果反轉(zhuǎn)后整數(shù)溢出那么就返回 0。
題解
思路1:通過字符串
def reverse(self, x: int) -> int:
res = str(x)
res = res[0]+res[:0:-1] if res[0] == "-" else res[::-1]
res = int(res)
return res if res<=2**31-1 and res>=-2**31 else 0
執(zhí)行結(jié)果:通過
顯示詳情
執(zhí)行用時 :44 ms, 在所有 Python3 提交中擊敗了53.55%的用戶
內(nèi)存消耗 :13.7 MB, 在所有 Python3 提交中擊敗了6.67%的用戶
思路2:正常方式
def reverse(self, x: int) -> int:
flag = 1 if x>=0 else -1
x = abs(x)
res = 0
while x:
res = res*10 + x%10
x //= 10
res *= flag
return 0 if res>2**31-1 or res<-2**31 else res
執(zhí)行結(jié)果:通過
顯示詳情
執(zhí)行用時 :36 ms, 在所有 Python3 提交中擊敗了85.61%的用戶
內(nèi)存消耗 :13.6 MB, 在所有 Python3 提交中擊敗了6.67%的用戶