Reverse Integer Problem

Difficulty – Medium

Reverse Integer Problem: Given a signed 32-bit integer x, return x with its digits reversed. If reversing x causes the value to go outside the signed 32-bit integer range [-231, 231 – 1], then return 0.

Assume the environment does not allow you to store 64-bit integers (signed or unsigned).

Example 1:

Input: x = 123
Output: 321

Example 2:

Input: x = -123
Output: -321

Example 3:

Input: x = 120
Output: 21

Reverse Integer Problem Solution

Problem solution in Python.

def reverse(x):
    sign = -1 if x<0 else 1
    res, x = 0, abs(x)
    while x:
        res = res*10 + (x%10)
        x /= 10
    # handle the overflow bound
    if res > 2**31+1 or res < -2**31-1:
        return 0
    return res*sign

Problem solution in Java

public int reverse(int x) {
        boolean neg = false;
        if(x<0){
            neg = true;
            x = -x;
        }
        long ans = 0;
        int maxPow = (int)Math.log10(x);
        while(x>0){
            ans+= (x%10 * Math.pow(10,maxPow--));
            x=x/10;
        }
        if(ans > Integer.MAX_VALUE){
            return 0;
        }
        if(neg){
            return (int)(-ans);
        }else{
           return (int) ans;
        }
    }

Problem solution in C++

public:
    int reverse(int x) { 
        long res = 0;
        while (x != 0) {
            res = 10 * res + x % 10;
            x /= 10;
        }
        return (res > INT_MAX || res < INT_MIN) ? 0 : res;
    }
};

Problem solution in C

int reverse(int x) {
 
    long reval = 0;
    for(;x;x/=10)
        reval = reval *10 + x%10;
    
    x = reval;
    if(reval != x) return 0;
    
    return reval;
}

Shares
facebook sharing button Share
twitter sharing button Tweet
whatsapp sharing button Share
telegram sharing button Share
pinterest sharing button Pin

Leave a Comment