JS算法题之整数反转
题目描述
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
示例
输入: 123
输出: 321
输入: -123
输出: -321
输入: 120
输出: 21
解答
这题就很简单了,不过要考虑好边缘溢出情况即可。
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
}
};本文内容仅供个人学习/研究/参考使用,不构成任何决策建议或专业指导。分享/转载时请标明原文来源,同时请勿将内容用于商业售卖、虚假宣传等非学习用途哦~感谢您的理解与支持!