LeetCode —— Reverse Integer

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

Input: 123
Output:  321

Example 2:

Input: -123
Output: -321

Example 3:

Input: 120
Output: 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.

C ++ (2ms):

#define LIMIT_MAX 2147483647
#define LIMIT_MIN (-LIMIT_MAX-1)

class Solution  {
public:
    int reverse(int x) {
        bool Is_negative=false;

        if(x<0)
        {
            x=x*(-1);
            Is_negative=true;
        }
        long result=0;
        while(x)
        {
            result=result*10+x%10;
            x = x/10;
        }
        if(Is_negative)
        {
            result=result*(-1);
            if(result<LIMIT_MIN)
                return 0;
        }
        if(result>LIMIT_MAX)
        {
            return 0;
        }

        return result;
    }
};

Python (30ms):

class Solution(object):
    def reverse(self, x):
        """
        :type x: int
        :rtype: int
        """
        is_negative = 0
        dictionary={"LIMIT_MAX":2147483647, "LIMIT_MIN":-2147483648}
        if x<0:
            x=x*(-1)
            is_negative=1
        result=0
        while x!= 0:
            result=result*10+x%10
            x=x/10
        if is_negative:
            result=result*(-1)
            if result<dictionary["LIMIT_MIN"]:
                return 0
        else:
            if result>dictionary["LIMIT_MAX"]:
                return 0
        return result

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=325729069&siteId=291194637