7. 整数反转

题目来源: 7. 整数反转 
// 给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。
// 如果反转后整数超过 32 位的有符号整数的范围 [−2^31,  2^31 − 1] ,就返回 0。
// 假设环境不允许存储 64 位整数(有符号或无符号)。
/**
 * @param {number} x
 * @return {number}
 */
var reverse = function(x) {
    let rev = 0;
    while (x !== 0) {
        const digit = x % 10;
        x = ~~(x / 10);
        rev = rev * 10 + digit;
        if (rev < Math.pow(-2, 31) || rev > Math.pow(2, 31) - 1) {
            return 0;
        }
    }
    return rev;
};

方法二:转为字符串->数组,然后用数组的reverse

var reverse = function(x) {
    let d = Array.from((Number(x)+''));
    let minus = false;
    if(d[0] == '-'){
        d.shift();
        minus = true;
    }
    let str = (minus?'-':'')+d.reverse().join('');
    let rev = Number(str);
    if (rev < Math.pow(-2, 31) || rev > Math.pow(2, 31) - 1) {
        return 0;
    }
    return rev;
}

 

posted @ 2021-05-07 17:55  尖子  阅读(72)  评论(0编辑  收藏  举报