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;
}


If You Like This Page Then Make Sure To Follow Us on Facebook, G News and Subscribe Our YouTube Channel. We will provide you updates daily.
Shares
facebook sharing button Share
twitter sharing button Tweet
whatsapp sharing button Share
telegram sharing button Share
pinterest sharing button Pin

Leave a Comment