7 整數反轉

2021-10-14 14:45:15 字數 879 閱讀 7948

題目描述

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

注意:

示例1

輸入:x = 123

輸出:321

示例2
輸入:x = -123

輸出:-321

示例3
輸入:x = 120

輸出:21

示例4
輸入:x = 0

輸出:0

題解:

法一:使用 long long 型別中間變數儲存數字的逆序結果,然後和 int_min 和 int_max 比較大小即可。

在 c++ 中,負數對正數取模後的結果仍是負數,比如 −

128%10=

−8

-128 \% 10=-8

−128%1

0=−8

,於是我們可以不用處理負數了。

法一**:

class

solution

if( ret < int_min || ret > int_max ) ret =0;

return ret;}}

;/*記憶體:6.2mb,擊敗:54.12%

*/

法二:

按照題意,不使用 long long 型別中間變數,可以使用數學方法解決:

法二**:

class

solution

return ret;}}

;/*記憶體:6mb,擊敗:85.01%

*/

7 整數反轉

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

7 整數反轉

解法一 對輸入數字進行整除和取餘運算,並把輸出值乘以10後與每次取餘的結果相加,直到原資料變為0 每次迴圈,原數對10取餘 結果乘以10,同時原數對10整除。c int reverse int x return rev python def reverse self,x r 0 返回值 flag 1...

7 整數反轉

有些讀者反映我寫的內容太簡單,有時候看不懂思路,我以後會記得寫好思路。一 數值法 1.取出符號位 2.10一次取出x的每一位,再 10變為ans 3.判斷是否超出 output 0if x 0 flag 1else flag 1 x abs x while x 0 res x 10 x int x ...