给你一个 32 位的有符号整数 x
,返回将 x
中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1]
,就返回 0。
示例 1:
输入:x = 123 输出:321
示例 2:
输入:x = -123 输出:-321
示例 3:
输入:x = 120 输出:21
示例 4:
输入:x = 0 输出:0
这题比较简单改成字符串翻转就行,负数提出-号后面再补上就行
var reverse = function(x) {
let result = 0
if(x<0){
let a = '-' + String(-x).split('').reverse().join('')
result = Number(a)
}else{
result = Number(String(x).split('').reverse().join(''))
}
return Math.pow(-2, 31) < result && result < Math.pow(2, 31)-1 ?result:0
};
如果不用数组的话,就取余一个个把最后的数字前移
var reverse = function(x) {
let res = 0;
let result = x >= 0 ? x : -x;
while(result) {
res = res * 10 + result% 10;
result= Math.floor(result/ 10);
if(res > Math.pow(2, 31) - 1 || res < Math.pow(-2, 31)) return 0;
}
return x < 0 ? -res : res;
};