牛客网算法之反转数字
题目描述
将给出的32位整数x翻转。
例1:x=123,返回321
例2:x=-123,返回-321
你有注意到翻转后的整数可能溢出吗?因为给出的是32位整数,则其数值范围为[−2^{31}, 2^{31} − 1][−231,231−1]。翻转可能会导致溢出,如果反转后的结果会溢出就返回 0。
function reverse( x ) {
if(x === 0){
return 0
}
var res;
if(x>0){
res = parseInt([...[x].toString()].reverse().join(''));
}else{
res = -parseInt([...[x].toString()].reverse().join(''));
}
if(res > Math.pow(-2,31) && res< Math.pow(2,31)-1){
return res
}else{
return 0
}
return res;
}
更简便的解法二:
/**
*
* @param x int整型
* @return int整型
*/
function reverse( x ) {
let negativeFlag = 1;
if(x < 0){
x = -x;
negativeFlag = -1;
}
//生成数组实例 Array.from
let resultString = Array.from(x + '').reverse().join("");
let result = parseInt(resultString);
return negativeFlag < 0 ? -result : result;
}
module.exports = {
reverse : reverse
};

浙公网安备 33010602011771号