整数反转
-> 题目描述
Reverse Integer
给定一个 32位有符号整数,返回它的逆序数字
示例1:
Input: 123
Output: 321
1
2
2
示例2:
Input: -123
Output: -321
1
2
2
示例3:
Input: 120
Output: 21
1
2
2
超出32位无符号数字边界则返回 0
/**
* @param {number} x
* @return {number}
*/
var reverse = function(x) {
};
1
2
3
4
5
6
7
2
3
4
5
6
7
-> 解法
点击查看
/**
* @param {number} x
* @return {number}
*/
var reverse = function(x) {
if (x >= 0 && x < 10) {
return x
}
const flag = x > 0 ? 1 : -1
let y = Math.abs(x)
const ret = []
while (y !== 0) {
const z = y % 10
if (!(z === 0 && ret.length === 0))
ret.push(z)
y = (y - z) / 10
}
y = parseInt(ret.join('')) * flag
if (y < -Math.pow(2, 31) || y > Math.pow(2, 31) - 1)
return 0
return y
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
-> 总结
- 重点是考虑多种情况:
- 难点是数字中间有 0的情况
编辑此页 (opens new window)
更新于: 2019-08-04 11:18