leetcode--7. Reverse Integer

来源:互联网 发布:淘宝购物返现app排行榜 编辑:程序博客网 时间:2024/05/22 10:46

一、问题描述

Reverse digits of an integer.

Example1: x = 123, return 321
Example2: x = -123, return -321

click to show spoilers.

Note:
The input is assumed to be a 32-bit signed integer. Your function should return 0 when the reversed integer overflows.

二、思路分析

这道题不难,难在逆转之后的数可能超过32bits,所以需要判断是否会溢出。


三、代码

class Solution {
public:
    int reverse(int x) {
        int digit = 0;
        int carry = 0;
        while (x != 0) {
            carry = x % 10;
            if (digit > INT32_MAX / 10 || digit < INT32_MIN / 10){ //判断是否会溢出
                return 0;
            }
            digit = digit * 10 + carry;
            x /= 10;
        }
        return digit;
    }
};