leetcode-javascript-7. 整数反转

2019-10-05  本文已影响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
    }
};


上一篇 下一篇

猜你喜欢

热点阅读