Reverse Integer
Problem statement
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 = 123Output: 321
Example 2:
Input: x = -123Output: -321
Example 3:
Input: x = 120Output: 21
Constraints:
-231 <= x <= 231 - 1
My solution
/**
* @param {number} x
* @return {number}
*/
function reverse(x) {
if (x < 10 && x >= 0) {
return x;
}
let res = 0;
let val = Math.abs(x);
while (val > 0) {
res = res * 10 + (val % 10);
val = (val / 10) | 0;
}
res *= Math.sign(x);
return (res | 0) === res ? res : 0;
}