Leetcode刷題 007 整數反轉

2021-10-05 08:51:14 字數 926 閱讀 1127

題目描述:

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

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

示例:

輸入:123

輸出:321

核心思想很簡單,把每一位拆解出來,然後累加到新的整數裡。

時間複雜度:o(log10(n))(?大概,看這個x有幾位數)

舉個例子。我們假設輸入的整數為x,返回的整數為c,工具人整數為a。

大概就是這麼個邏輯。

具體**實現如下:

int

reverse

(int x)

return c;

}

幾個神奇的點:

因為判斷條件用的十六進製制,所以當十六進製制表示負數的時候範圍一定要注意,必須限定是有符號整數。(具體會發生什麼也不清楚……總之vs跑了一下報錯溢位了,leetcode打回無符號處理了,神奇……理論上來講應該是預設按照無符號處理的。)

返回值工具人c資料型別要用long。(???講真挺狗的

提交結果:

**還有簡化空間。先這樣。

Leetcode刷題 整數反轉

解法一 思路 先將x轉化為字串形式str x 然後判斷x是否負數,是則輸出除負號外的倒序字串,然後取負,否則直接輸出倒序字串。def reverse force x int int str x str x if str x 0 str x str x 1 從後往前數,步進為1 321 x int s...

LeetCode 刷題 整數反轉

示例 1 輸入 123 輸出 321 示例 2 輸入 123 輸出 321 示例 3 輸入 120 輸出 21 注意 假設我們的環境只能儲存得下 32 位的有符號整數,則其數值範圍為 231,231 1 請根據這個假設,如果反轉後整數溢位那麼就返回 0。雖然是個easy難度的,但是想一次通過並不簡單...

LeetCode刷題 整數反轉

給你乙個 32 位的有符號整數 x 返回 x 中每位上的數字反轉後的結果。如果反轉後整數超過 32 位的有符號整數的範圍 231,231 1 就返回 0。假設環境不允許儲存 64 位整數 有符號或無符號 示例 1 輸入 x 123 輸出 321 示例 2 輸入 x 123 輸出 321 示例 3 輸...