7 整數反轉 LeetCode

2021-09-16 21:28:40 字數 1420 閱讀 9618

題目描述:

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

示例 1:

輸入: 123

輸出: 321

示例 2:

輸入: -123

輸出: -321

示例 3:

輸入: 120

輸出: 21

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

class solution 

return num;

}int reverse(int x)

bool flag=1; //判斷x是否為正數的標誌位

if(x<0)

int m=0;

int temp;

if(x%10==0)

int n = fun(x); //計算x的位數,方便計算反轉後的數

while(n!=0&&x!=0)

if(n!=0)

if(!flag)

if(m

return m;

}};

提交結果:

這道題雖然是綠色題,但是我花了近3個小時才寫出來。。但是最後顯示用時還算理想就感覺辛苦沒白費qaq 。處理溢位部分實在是太讓我頭疼了,想用異常處理的,但對於資料溢位的情況c++的異常是檢測不出來的。。感覺自己要補的功課還有很多。

過了一周回來看看這題,感覺自己寫的**好傻。首先,根本不需要計算位數,不斷除10取餘,把餘數乘10累加就好了。其次,所有直接判斷資料溢位的操作都是無用的,如果資料溢位的話程式會直接炸掉的,而且也不可能輸入超過 int 整型資料的最大值 2147483647 的數。所以,改進了一下**。

class solution 

bool flag=1;

if(x<0)

int m=0;

int temp;

while(x)

m=10*m+temp;

x=x/10;

}if(!flag)

return m;

}};

執行結果:

LeetCode7反轉整數

給定乙個 32 位有符號整數,將整數中的數字進行反轉。示例 1 輸入 123輸出 321示例 2 輸入 123輸出 321示例 3 輸入 120輸出 21注意 假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 231,231 1 根據這個假設,如果反轉後的整數溢位,則返回 0。以字串方式思考...

LeetCode 7 反轉整數

給定乙個 32 位有符號整數,將整數中的數字進行反轉。示例 1 輸入 123輸出 321示例 2 輸入 123輸出 321示例 3 輸入 120輸出 21注意 假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 231,231 1 根據這個假設,如果反轉後的整數溢位,則返回 0。很簡單,就是不...

leetcode 7反轉整數

隨機一題 給定乙個 32 位有符號整數,將整數中的數字進行反轉。示例 1 輸入 123 輸出 321 示例 2 輸入 123 輸出 321 示例 3 輸入 120 輸出 21 注意 假設我們的環境只能儲存 32 位有符號整數,其數值範圍是 231,231 1 根據這個假設,如果反轉後的整數溢位,則返...