LeetCode第七題 整數反轉

2021-10-08 22:32:46 字數 1163 閱讀 2283

給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。

示例 1:

輸入:

123輸出:

321

示例 2:

輸入:

-123

輸出:-

321

示例 3:

輸入:

120輸出:

21

注意:

假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 [−231, 231 − 1]。請根據這個假設,如果反轉後整數溢位那麼就返回 0。

解法一: 轉換為字串,再反轉。

先將數字轉換為字串,把字串反轉後,再轉換為數字,需要注意的是,字串反轉後的結果可能會超過int的表示範圍,會丟擲異常;我們只需要捕捉異常返回0即可。

解法二:用數學方法進行反轉

我們想重複「彈出」 x 的最後一位數字,並將它「推入」到 rev 的後面。最後,rev 將與 xx 相反。核心**如下,需要注意提前對溢位進行檢測。

//彈出操作

pop = x %10;

x /=10;

//壓棧操作

temp = rev *

10+ pop;

rev = temp;

轉換為字串的解法:

public

static

intreverse

(int x)

else

int res;

trycatch

(numberformatexception e)

return res;

}

提交結果:

數學方法轉換解法:

public

intreverse

(int x)

return rev;

}

LeetCode第七題整數反轉

題目 給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。示例示例 1 示例 2 示例 3 輸入 123 123 120輸出 321 321 21注意 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 231,231 1 請根據這個假設,如果反轉後整數溢位那麼就返...

LeetCode第七題 整數反轉

題目描述如下 給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。輸入 123 輸出 321 輸入 123 輸出 321 輸入 120 輸出 21 注意 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 int型別能表示數。請根據這個假設,如果反轉後整數溢位那麼就...

LeetCode 第七題 整數反轉

整數反轉 難度 簡單 給出乙個 32 位的有符號整數,你需要將這個整數中每位上的數字進行反轉。示例 1 輸入 123 輸出 321示例 2 輸入 123 輸出 321示例 3 輸入 120 輸出 21注意 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 231,231 1 請根據這...