美文网首页
leetcode-javascript-7. 整数反转

leetcode-javascript-7. 整数反转

作者: 一书文集 | 来源:发表于2019-10-05 19:56 被阅读0次

    总结:
    解决这一道题,我们需要了解JavaScript的基本变量的基本性质,强制转换,或者是比较底层的数字变换,和溢出问题。


    image.png
    /**
     * @param {number} x
     * @return {number}
     */
    var reverse = function(x) {
        if(x==0) return 0;
    //满足题目不让溢出的条件
        if(x<(Math.pow(-2, 31)) || x>(Math.pow(2, 31)-1)) return 0;
        // console.log(-2^31)
        let flag = true
    //满足负数,因为我们要转便到字符串
        if(x<0) {
            x * -1
            flag = false
        }
        let result = parseInt(x.toString().split("").reverse().join(""))
        if(result<(Math.pow(-2, 31)) || result>(Math.pow(2, 31)-1)) return 0;
        if(flag === false) return result*-1
        return result
    };
    

    数学方法,处理溢出

    var reverse = function (x) {
        let num = 0
        a = Math.abs(x)
        while(a!=0){
            temp = a%10 //获取各位
            num = num*10 + temp //接受数子 成为倒转的数子
           a = parseInt(a/10) //a为去掉后面的数
        }
        console.log(num)
    //输出&& 溢出判断 
        if(x < 0 && num < Math.pow(2, 31)) {
            return -num
        }else if( x>0 && num < Math.pow(2, 31) - 1){
            return num
        }else {
            return 0
        }
    };
    
    
    

    相关文章

      网友评论

          本文标题:leetcode-javascript-7. 整数反转

          本文链接:https://www.haomeiwen.com/subject/vyiepctx.html