力扣LeetCode刷題日記(五) 整數反轉

2021-09-26 06:12:25 字數 1272 閱讀 7947

給出乙個 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 先進先出 原則並且隊尾被連線在隊首之後以形成乙個迴圈。它也被稱為 環形緩衝器 迴圈佇列的乙個好處是我們可以利用這個佇列之前用過的空間。在乙個普通佇列裡,...