0721 整数反转

77 阅读1分钟

题目

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

例如:

输入: -123
输出: -321

解法:

var reverse = function(x) {
    let unit = x < 0 ? '-' : '';
    let result = Math.abs(x).toString().split('').reverse().join('');
    if(result > (Math.pow(2, 31) - 1) || result < -Math.pow(2, 31)) {
       return 0;
    }
  	return Number(unit + result)
    
};
解题思路
  • 我们先得到传进来的数的绝对值,处理得到的绝对值
  • 分别把这个数转化成字符串,数组,翻转,字符串
  • 判断结果是否在[−231, 231 − 1]区间
  • 最后返回符号 + 结果

目前只知道这一种解法,如果你们还有其他的方法,请赐教,嘻嘻