题目要求
给出一个32位的有符号整数,你需要将这个整数中每位上的数字进行反转。比如:
输入:1234
输出:4321
或者
输入:-120
输出:-21
注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
解题思路:
首先取这个整数的绝对值,转换成String,然后split成数组,
其次 逆转数组,最后判断是否为负数并且是否在规定范围内
代码如下
var reverse = function(x) {
let arr = String(Math.abs(x)).split('');//取绝对值并转换为字符串,组成数组
let result = '';
//反转数组
for(let i =0;i<arr.length;){
result += arr.pop()
}
result = x>0?Number(result): - Number(result);
if(result>Math.pow(2,31)-1|| result< -Math.pow(2,31)){
result = 0;
}
return result
};
网友评论