本文正在参与掘金团队号上线活动,点击 查看大厂春招职位
一、题目描述:
给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。
示例 1:
输入:x = 123
输出:321
示例 2:
输入:x = -123
输出:-321
示例 3:
输入:x = 120
输出:21
示例 4:
输入:x = 0
输出:0
提示:
-231 <= x <= 231 - 1 原题地址:7. 整数反转
二、思路分析:
- 获取 x 的个位。
- 把 x 的个位变成 reverseX 的个位。
- 然后把 x 的个位去掉。
- 循环上面的这三步,直到 x 为 0 为止。
- 判断结果为 0 的特殊情况
- 返回结果
三、AC 代码:
/**
* @param {number} x
* @return {number}
*/
var reverse = function(x) {
let reverseX = 0;
while(x !== 0) {
let tem = x % 10;
reverseX = reverseX * 10 + tem;
x = parseInt(x / 10);
}
if (reverseX < 0 && reverseX <= -2147483648) {
return 0;
}
if(reverseX > 0 && reverseX >= 2147483647 ) {
return 0;
}
return reverseX;
};
四、总结:
- 时间复杂度
- 空间复杂度