給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。
示例 1:
輸入: 123
輸出: 321
示例 2:
輸入: -123
輸出: -321
示例 3:
輸入: 120
輸出: 21
注意:假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。
class
solution
:def
reverse
(self, x:
int)
->
int:
if x ==0:
return x
str_x =
str(x)
# 將整數變為字串
n =len(str_x)
str_new = str_x[::
-1]# 將字串反轉
if str_new[n-1]
=="-"
:# 如果是乙個負數
for i, k in
enumerate
(str_new)
:if k !=
"0":
# 反轉後的字串前面的0全部刪除
str_new = str_new[i:
(n-1)]
# 從非零字元開始切片,到最後乙個負號之前
break
result =
int(str_new)*(
-1)# 字串轉換為整數
else
:# 如果是正數
for i, k in
enumerate
(str_new)
:if k !=
"0":
# 反轉後的字串前面的0全部刪除
str_new = str_new[i:
]# 從非零字元開始切片到最後
break
result =
int(str_new)
if result <(-
2)**31
or result >2**
31-1:
# 如果結果不是32位
result =
0return result
對於反轉後的字串中的負號,一開始我使用del str_new[n-1],被告知字串型別不能刪除,這是和列表中操作的區別吧,還是切片操作更方便。 力扣LeetCode刷題日記(一)
給定乙個整數陣列 nums 和乙個目標值 target,請你在該陣列中找出和為目標值的那 兩個 整數,並返回他們的陣列下標。你可以假設每種輸入只會對應乙個答案。但是,你不能重複利用這個陣列中同樣的元素。示例 給定 nums 2,7,11,15 target 9 因為 nums 0 nums 1 2 ...
力扣LeetCode刷題日記(二)
給定乙個字串,請你找出其中不含有重複字元的 最長子串 的長度。示例 1 輸入 abcabcbb 輸出 3 解釋 因為無重複字元的最長子串是 abc 所以其長度為 3。示例 2 輸入 bbbbb 輸出 1 解釋 因為無重複字元的最長子串是 b 所以其長度為 1。示例 3 輸入 pwwkew 輸出 3 ...
力扣刷題日記(3)
最近有點懶,哈哈,刷題挺慢的,今天用python3 練練手了,題目如下 設計你的迴圈佇列實現。迴圈佇列是一種線性資料結構,其操作表現基於 fifo 先進先出 原則並且隊尾被連線在隊首之後以形成乙個迴圈。它也被稱為 環形緩衝器 迴圈佇列的乙個好處是我們可以利用這個佇列之前用過的空間。在乙個普通佇列裡,...