7 - Reverse Integer

#medium

Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range [-231, 231 - 1], then return 0.

Assume the environment does not allow you to store 64-bit integers (signed or unsigned).

Example 1:
Input: x = 123
Output: 321

Example 2:
Input: x = -123
Output: -321

Example 3:
Input: x = 120
Output: 21

int reverse(int x){
    int sign = 0, rev = 0;
    long result = 0;
    if ( x >= INT_MAX || x <= INT_MIN ) return 0;
    if ( x > 0 ) sign = 1;
    else {
        sign = -1;
        x = -x;
    }
    while ( x != 0 ) {
        rev = x % 10;
        // x翻轉後有可能大於INT_MAX
        if ( result * 10 > INT_MAX ) return 0;
        result = result * 10 + rev;
        x = x / 10;
    }

    return (int) result * sign;
}