LeetCode:7.反轉整數
阿新 • • 發佈:2018-12-26
題目
LeetCode: Reverse Integer
給定一個 32 位有符號整數,將整數中的數字進行反轉。
示例:
輸入: 123
輸出: 321
思路
這個題比較簡單,唯一需要小心的地方就是整型溢位,控制好條件即可
但是自定測試用例的時候他的題有的測試用例還是會出錯,比如一串555555555555555555,就那麼輸出了 - 1。。我的程式不知道為啥也輸出的 - 1,算了不管了,這個題簡單沒什麼好講的
程式碼
int reverse(int x) {
int max = INT_MAX;
int num = x;
int flag = 1;
if (x < 0)
{
//保持ret為正,所以需要記錄符號
flag = -1;
num = -x;
}
int ret = 0;
while (num != 0)
{
if (ret > 0 && max / ret < 10)
{
//先判斷ret*10是否會溢位
return 0;
}
ret = ret * 10;
if (max - ret < num % 10 )
{
//判斷下一個需要加的數加上是否會溢位
return 0;
}
ret += num % 10;
num /= 10;
}
return flag * ret;
}