给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。
假设环境不允许存储 64 位整数(有符号或无符号)。
示例 :
示例 1:输入:x = 123
输出:321
示例 2:
输入:x = -123
输出:-321
示例 3:
输入:x = 120
输出:21
示例 4:
输入:x = 0
输出:0
答题:
var reverse = function(x) {
let rev = 0;
while (x !== 0) {
// 筛选出最后一位 例 321 出 1 or -321 出-1 直接处理了-的情况
const digit = x % 10;
// 每次都减少一位 然后传递给下次以便循环 因为~~只能筛选出整数
x = ~~(x / 10);
//因为拿到的是他的上一位也就是10的倍数 例如21 本轮拿到的 1 下次就是*10 10+2 = 12 完成翻转
rev = rev * 10 + digit;
// 这里就是幂运算
if (rev < Math.pow(-2, 31) || rev > Math.pow(2, 31) - 1) {
return 0;
}
}
return rev;
};
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/reverse-integer
网友评论