7. 整数反转
给你一个 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
提示:
-231 <= x <= 231 - 1
转为数组反转
/**
* @param {number} x
* @return {number}
*/
var reverse = function(num) {
// 获取符号
let s = num >= 0? 1 : -1;
let numStr = Math.abs(num).toString().split('').reverse().join('');
console.log(num, '反转结果:', s * parseInt(numStr));
// 边缘情况
s = s * parseInt(numStr);
if(s > Math.pow(2, 31)-1 || s < -1*Math.pow(2, 31)){
return 0;
}
return s;
};
模除反转
//使用模除
var reverse = function(x){
let s = 0;
let num = x;
while(num != 0){
s = s*10 + (num%10);
num = parseInt(num / 10);
}
if(s > Math.pow(2, 31)-1 || s < -1*Math.pow(2, 31)){
return 0;
}
console.log(x, '反转结果:', s);
return s;
}