LeetCode刷題——第七題(整數反轉)
阿新 • • 發佈:2018-12-19
7.整數反轉
題目描述
給出一個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
示例 1:
輸入: 123
輸出: 321
示例 2:
輸入: -123
輸出: -321
示例 3:
輸入: 120
輸出: 21
注意:
假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [
,
]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。
思路
- 利用切片解決問題
將數字轉換成字串,利用切片交換順序,最後輸出結果
- 輸入的數為負數時:將其變為正數處理,變為字串,交換順序後,其相反數。
- 輸入為正數或者0時,那就很好處理了。
- 注意判定最後 的範圍。
程式碼實現
class Solution ():
def reverse(self, x):
"""
:type x: int
:rtype: int
"""
b = pow(2,31)
if x < 0:
y = -int(str(-x)[::-1]) # 字串切片的思想
else:
y = int(str(x)[::-1])
if y < -b or y > b - 1:
return 0
else:
return y