给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。
示例1:
输入:x = 123
输出:321
示例2:
输入:x = -123
输出:-321
方法1:
思路: 将字符串转换成数组str.split(’’),用数组的reverse:翻转数组,再将数组拼接成字符串join("")
// ******************第一种*********************
var reverse = function (x) {
//找绝对值,先不考虑字符串前的正负号
var s = (Math.abs(x) + "").split("").reverse().join("");
//添加正负号
var num = +(x < 0 ? "-" + s : s);
// 定义范围
var b = Math.pow(2, 31);
//判断是否在范围内
return num >= b || num < -b ? 0 : num;
};
console.log(reverse("123"));
方法2:
思路: 循环判断
// ******************第二种*********************
var reverse = function (x) {
//先定义一个范围
let min = -Math.pow(2, 31) - 1;
let max = Math.pow(2, 31);
//暂存数据
var num = 0;
do {
num = num * 10 + (x % 10);
x = parseInt(x / 10);
} while (x != 0);
if (num > min && num < max) {
return num;
} else {
return 0;
}
};
console.log(reverse("123"));