一个整数反转算法

168 阅读1分钟

题目:

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。

假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回

算法:

var reverse = function(x) {
    var result = 0;
    while(x!==0){
        result =result*10 + x%10;
        x=(x/10) | 0;
    }

    return (result|0 )=== result? result:0;
};

result =result*10 + x%10:利用取余运算逐渐获取末尾数字拼接

x=(x/10) | 0; 利用正小数向下取整,负小数向上取整,来处理最后一位,

result|0 :利用|可以将超过范围的整数转化为与它自身不相等的数。