1. 程式人生 > >LeetCode:7.反轉整數

LeetCode:7.反轉整數

題目

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; }