//给你一个 32 位的有符号整数 x ,返回 x 中每位上的数字反转后的结果。 
//
// 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 
//假设环境不允许存储 64 位整数(有符号或无符号)。
//
// 
//
// 示例 1: 
//
// 
//输入:x = 123
//输出:321
// 
//
// 示例 2: 
//
// 
//输入:x = -123
//输出:-321
// 
//
// 示例 3: 
//
// 
//输入:x = 120
//输出:21
// 
//
// 示例 4: 
//
// 
//输入:x = 0
//输出:0
// 
//
// 
//
// 提示: 
//
// 
// -231 <= x <= 231 - 1 
// 
// Related Topics 数学 
// 👍 2541 👎 0

/*
* 7 整数反转
* 2021-02-22 09:46:04
* @author oxygenbytes
*/ 
#include "leetcode.h" 
//leetcode submit region begin(Prohibit modification and deletion)
class Solution {
public:
    int reverse(int x) {
        if(!x) return 0;
        bool flag = x > 0 ? true : false;
        x = abs(x);
        long long int res = 0;

        while(x){
            res = res * 10;
            res += x % 10;
            x /= 10;
        }
        if(res > INT_MAX || res < INT_MIN) return 0;

        return flag ? res : -res;
    }
};
//leetcode submit region end(Prohibit modification and deletion)