今天有点事,所以挑了个简单的,话不多说,赶快上代码了,今天马上就要结束了
题目:
给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
示例 1:
输入: 123
输出: 321
示例 2:输入: -123
输出: -321
示例 3:输入: 120
输出: 21
注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
思路:
1. 将数字转为字符串
2. 将字符串转为数组
3. 判断数字是否小于0,若小于0,则第2步中的数组中的第一位为符号位,符号位不参与翻转
4. 将数组使用reverse方法翻转
5. 将数组转为字符串
6. 将字符串转为数字,返回结果
7. 若翻转后的结果超出了范围,则返回0
有些麻烦,但现在赶时间,之后再想其它的解决方法
代码实现:
/**
* @param {number} x
* @return {number}
*/
var reverse = function(x) {
let str = x.toString();
let arr = str.split('');
let reverseArr;
let res;
if(x < 0) {
arr.splice(0,1)
reverseArr = arr.reverse();
res = 0 - Number(reverseArr.join(''))
} else {
reverseArr = arr.reverse()
res = Number(reverseArr.join(''))
}
if(res < Math.pow(-2,31) || res > Math.pow(2,31)-1){
return 0;
}
return res;
};