7.整数回转(javascript)(7.ReverseInteger)
原创给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。
Given a 32-bit signed integer, reverse digits of an integer.
示例 1:
输入: 123
输出: 321
Example 1:
Input: x = 123
Output: 321
示例 2:
输入: -123
输出: -321
Example 2:
Input: x = -123
Output: -321
示例 3:
输入: 120
输出: 21
Example 3:
Input: x = 120
Output: 21
注意:
假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为 [−231, 231 − 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。
Note:
Assume we are dealing with an environment that could only store integers within the 32-bit signed integer range: [−231, 231 − 1]. [−2 31 ,2 31 -1]
For the purpose of this problem, assume that your function returns 0 when the reversed integer overflows.
reverse是将数组进行反转
1、先将 数字转换成字符串,再将字符串分割成数组arr
2、判断数字是正数还是负数
(1)数字是正数, arr[0] !== "-" ,将数组arr进行reverse(反转),join(’’)进行拼接,最后转换成数组
[‘0’,‘0’,‘1’]转换成数组1,例一和例三可以放在一起
溢出判断
if (num <= 2147483647 && num >= -2147483648){
return num;
}else{
return 0;
}
(2)数字是负数,, arr[0] === "-" ,去掉负数 delete arr[0]; 将数组arr进行reverse(反转),join(’’)进行拼接,最后转换成数组
var a=10;
console.log(~a);//-11
console.log(~a+1);//-10
溢出判断
if (num <= 2147483647 && num >= -2147483648){
return ~num+1;
}else{
return 0;
}
/**
* @param {number} x
* @return {number}
*/
var reverse = function(x) {
var str = x.toString();
let arr = str.split();
if (arr[0] !== "-"){
let num = Number(arr.reverse().join());
if (num <= 2147483647 && num >= -2147483648){
return num;
}else{
return 0;
}
}else if(arr[0] === "-"){
delete arr[0];
let num = Number(arr.reverse().join());
if (num <= 2147483647 && num >= -2147483648){
return ~num+1;
}else{
return 0;
}
}
}; 版权声明
所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除
itfan123




