leetcode 7. 整数反转(Reverse Integer)

题目描述:

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

示例 1:


输入: 123
输出: 321

示例 2:


输入: -123
输出: -321

示例 3:


输入: 120
输出: 21

解法:


class Solution {
public:
    int reverse(int x) {
        long long val = 0;
        long long max_val = pow(2, 31)-1;
        long long min_val = -max_val - 1;
        bool neg = false;
        if(x < 0){
            neg = true;
        }
        int digit = 0;
        while(x != 0){
            digit = x%10;   // if x < 0, then x%10 < 0
            x /= 10;
            val *= 10;
            val += digit;
        }
        // if(neg){
        //     val = -val;
        // }
        if(val > max_val || val < min_val){
            return 0;
        }else{
            return val;
        }
    }
};
posted @ 2019-03-18 13:42  zhanzq1  阅读(102)  评论(0)    收藏  举报