给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−2^31, 2^31 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。
示例 1:
输入:x = 123
输出:321
示例 2:
输入:x = -123
输出:-321
示例 3:
输入:x = 120
输出:21
示例 4:
输入:x = 0
输出:0
提示:
- -2^31 <= x <= 2^31 - 1
- -2^31 = -2147483648
- 2^31 - 1 = 2147483647
/**
* @param {number} x
* @return {number}
* res 反转的结果
*
*/
var reverse = function(x) {
let rev = 0;
while (x !== 0) {
// 取出末尾数字
const digit = x % 10;
// 去除 x/10 的余数部分,即出去 x 的十位数字(如, ~~(1234 / 10) 得到的结果是 123)
x = ~~(x / 10);
// 反转后的值
rev = rev * 10 + digit;
// 如果反转后的值不在 -2147483648 和 2147483647 之间,直接返回0
if (rev < Math.pow(-2, 31) || rev > Math.pow(2, 31) - 1) {
return 0;
}
}
return rev;
};
来源:力扣(LeetCode)