題目描述:
給出乙個 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 根據這個假設,如果反轉後的整數溢位,則返...