天天看點

LeetCode 7: Reverse IntegerReverse Integer

Reverse Integer

Reverse digits of an integer.

Example1: x = 123, return 321

Example2: x = -123, return -321

解題思路

本題比較簡單,但是需要注意結果可能溢出。假設輸入是一個 32-bit 的整數,則1000000003的reverse結果會溢出。

class Solution {
public:
    int reverse(int x) {
        // INT_MIN 和 INT_MAX 定義在 <limits> 頭檔案中
        if (x == INT_MIN) return ; //// reverse 溢出

        bool isNeg = false;
        if (x < ) {
            isNeg = true;
            x = -x;
        }

        long long result = ;
        while (x) {
            result = result *  + x % ;
            x = x / ;
        }

        if (result > INT_MAX) return ; // reverse 溢出

        return isNeg ? -result : result;
    }
};