1. 首页
  2. SEO百科
  3. Web前端

JS算法题之整数反转菜鸟教程_算法题入门基础知识

题目描述给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。示例输入: 123输出: 321输入: -123输出: -321输入: 120输出: 21解答这题就很简单了,不过要考虑好边

JS算法题之整数反转菜鸟教程

题目描述

给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231,  231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。

JS算法题之整数反转菜鸟教程_算法题入门基础知识

示例

输入: 123
输出: 321

输入: -123
输出: -321

输入: 120
输出: 21

解答

这题就很简单了,不过要考虑好边缘溢出情况即可。

<span type="button" data-toggle="tooltip" data-placement="top" data-clipboard-text="var MAX = Math.pow(2, 31) – 1
var MIN = -1 * Math.pow(2, 31)

var reverse = function(x) {
let str = x.toString().split(''), symbolFlag = false;
if(str[0] == '-'){
symbolFlag = true;
str.shift();
}

str = str.reverse();

if(symbolFlag){
str.unshift('-');
}
let num = Number(str.join(''))
if(num MAX){
return 0
}
else{
return num
}
};” title=”” data-original-title=”复制”>

var MAX = Math.pow(2, 31) - 1
var MIN = -1 * Math.pow(2, 31)

var reverse = function(x) {
    let str = x.toString().split(''), symbolFlag = false;
    if(str[0] == '-'){
        symbolFlag = true;
        str.shift();
    }

    str = str.reverse();

    if(symbolFlag){
        str.unshift('-');
    }
    let num = Number(str.join(''))
    if(num < MIN || num > MAX){
        return 0
    }
    else{
        return num
    }
};
海计划公众号