给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。 用js完成
时间: 2024-03-27 15:40:44 浏览: 51
可以使用字符串的反转来实现整数反转,具体步骤如下:
1. 将整数转换为字符串。
2. 反转字符串。
3. 将反转后的字符串转换为整数。
4. 判断整数是否在 [-2^31, 2^31 - 1] 范围内,如果不是则返回 0。
下面是实现代码:
```js
function reverse(x) {
const INT_MAX = Math.pow(2, 31) - 1;
const INT_MIN = -Math.pow(2, 31);
// 将整数转换为字符串
const str = x.toString();
// 反转字符串
const reversedStr = str.split('').reverse().join('');
// 将反转后的字符串转换为整数
let result = parseInt(reversedStr);
// 判断整数是否在 [-2^31, 2^31 - 1] 范围内
if (result > INT_MAX || result < INT_MIN) {
return 0;
}
return result;
}
```
测试代码如下:
```js
console.log(reverse(123)); // 输出 321
console.log(reverse(-123)); // 输出 -321
console.log(reverse(120)); // 输出 21
console.log(reverse(0)); // 输出 0
```
注意:以上代码只针对于 32 位有符号整数,如果要支持更大的整数,需要使用 BigInt 类型。
阅读全文