LeetCode刷題心得 整數反轉

2021-09-12 02:43:38 字數 772 閱讀 8283

整數反**

如果想得到乙個32位整數x中的每乙個數字,可以採用如下演算法:

int pop = x % 10;

x /= 10;

這個演算法的意思就是,先pop得到x除以10取餘後的結果,然後x再往後退一位。例如x=123,則第一步pop=3,然後x變為12,第二步就是pop=2,x變為1,最後一步則pop=1,x=0.迴圈結束

通過迴圈,就可以彈出32位整數中的每乙個數,但是需要乙個容器去接納。

假如想將整數x進行反轉,可以採用如下演算法:

temp = rev * 10 + pop;

rev = temp;

這個演算法的意思就是,用temp去接收從pop中彈出來的數字,rev表示為結果,一開始rev=0,例如x=123,則第一步pop中彈出來的數字為3,則rev為3.第二步pop的結果為2,則rev的結果先3*10,然後+2得到32,最後一步rev就得到321了。整個程式結束。

最需要注意的是因為是32位整數,假如反轉後超出邊界就會出錯,所以需要在求結果的前一步驟去判定是否越界,假如越界就return 0.否則繼續執行。 判定條件為:

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 輸...