LeetCode-整数反转

90 阅读1分钟

7. 整数反转

给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。

如果反转后整数超过 32 位的有符号整数的范围 [−231,  231 − 1] ,就返回 0。

假设环境不允许存储 64 位整数(有符号或无符号)。

 

示例 1:

输入: x = 123
输出: 321

示例 2:

输入: x = -123
输出: -321

示例 3:

输入: x = 120
输出: 21

示例 4:

输入: x = 0
输出: 0

 

提示:

  • -231 <= x <= 231 - 1

转为数组反转

/**
 * @param {number} x
 * @return {number}
 */
var reverse = function(num) {

      // 获取符号
      let s = num >= 0? 1 : -1;
      let numStr = Math.abs(num).toString().split('').reverse().join('');

      console.log(num, '反转结果:', s * parseInt(numStr));

      // 边缘情况
      s = s * parseInt(numStr);
      if(s > Math.pow(2, 31)-1 || s < -1*Math.pow(2, 31)){
        return 0;
      }

      return s;
};


模除反转

//使用模除
var reverse = function(x){
    
    let s = 0;
    let num = x;
    while(num != 0){
        s = s*10 + (num%10);
        num = parseInt(num / 10);
    }

    if(s > Math.pow(2, 31)-1 || s < -1*Math.pow(2, 31)){
        return 0;
    }

    console.log(x, '反转结果:', s);
    return s;
}