Journal Archive

/**
 * @param {number} x
 * @return {number}
 */
var reverse = function(x) {
    // simple case
    if (x === 0) return 0;
    
    let sign = x < 0 ? -1: 1;
    
    x = Math.abs(x);
    
    let reverse = 0;
    while (x > 0) {
        let digit = x % 10;
        reverse = reverse * 10 + digit;
        x = Math.floor(x / 10);
        
    }
    // final answer
    let ans = sign * reverse;
    // check for the 32 bit range
    if (ans < -(2**31) || ans > (2**31) -1) {
        return 0;
    }
    return ans;
};

Day 38: Solving one of LeetCode problems

7. Reverse Integer Difficulty - Medium

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