/** * @param {number} x * @return {number} */ var reverse = function(x) { var sign = 1; var magnitude = 1; var reverse = 0; var digits = []; if (x < 0){ sign = -1; x = x * sign; } if (x === 0){ return reverse; } while (x > 0){ digits.push(getTensDigit(x)); x = popDigit(x); } for (var i = digits.length -1; i >= 0; --i){ reverse += (digits[i] * magnitude); magnitude *= 10; } if (reverse > 2147483647){ return 0; } reverse = reverse * sign; return reverse; }; function getTensDigit(value){ var digit = value % 10; return digit; } function popDigit(value){ value = Math.floor(value / 10); return value; }