问题描述
Given a 32-bit signed integer, reverse digits of an integer.
Example 1:
Input: 123 Output: 321
Example 2:
Input: -123 Output: -321
Example 3:
Input: 120 Output: 21
Note:
Assume we are dealing with an environment which could only store integers within the 32-bit signed integer range: [−231, 231 − 1]. For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.
解法一
/**
* @param {number} x
* @return {number}
*/
var reverse = function(x) {
let strArr = x.toString().split('');
let regstr=/^[0-9]$/;
let regstr1=/^[+-]?$/;
let flag=regstr1.test(strArr[0]);
//第一个字符是+/-号
if(flag){
let copyflag=strArr[0];
strArr.shift();
strArr.reverse();
//copyflag.concat(strArr);
let reversestr=copyflag.concat(strArr);
let esnum=parseInt(reversestr.split(',').join(''));
if(esnum>Math.pow(2,31)-1 || esnum<Math.pow(-2,31)){
return 0;
}else{
return esnum;
}
}else{
let esnum= parseInt(strArr.reverse().join(''));
if(esnum>Math.pow(2,31)-1 || esnum<Math.pow(-2,31)){
return 0;
}else{
return esnum;
}
}
};