Leetcode7. Reverse Integer

来源:互联网 发布:朝鲜脱北者 知乎 编辑:程序博客网 时间:2024/06/05 10:33

Leetcode7. Reverse Integer

题目:

Given a 32-bit signed integer, reverse digits of an integer.

Example 1:

Input: 123Output:  321

Example 2:

Input: -123Output: -321

Example 3:

Input: 120Output: 21

Note:
Assume we are dealing with an environment which could only hold integers within the 32-bit signed integer range. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.

题目分析:这题主要的难点在于,32bit,超过32bit就返回0。所以这题我有两种方法,第一种,把结果变成longlong类型,判断结果是否在INT32_MAX和INT32_MIN之内。第二种,判读结果啥时候会溢出。

代码:

class Solution {public:    int reverse(int x) {        int sum = 0;        int n;        while (x != 0) {            if (sum > INT_MAX/10 || sum < INT_MIN/10) {                return 0;            }            n = x%10;            sum = sum * 10 + n;            x /= 10;        }        return sum;    }};


原创粉丝点击