1. 整数反转

https://leetcode-cn.com/problems/reverse-integer/

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/**
* @param {number} x
* @return {number}
*/
var reverse = function (x) {
let islowerZero = x < 0;

if (islowerZero) {
x = Math.abs(x);
}

let len = x.toString().length - 1;

let reverseNumber = 0;

while (x) {
let rest = x % 10;
reverseNumber += rest * Math.pow(10, len);

x = Math.floor(x / 10);
len--;
}

if (reverseNumber > Math.pow(2, 31) - 1) return 0;

return islowerZero ? -reverseNumber : reverseNumber;
};

上面的方式不是不可以,但我没有发现一个规律,那就是 res=res*10+rest(余数)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
/**
* @param {number} x
* @return {number}
*/
var reverse = function (x) {
let islowerZero = x < 0;

if (islowerZero) {
x = Math.abs(x);
}
let reverseNumber = 0;
while (x) {
let rest = x % 10;
reverseNumber += reverseNumber * 10 + rest;
x = Math.floor(x / 10);
}

if (reverseNumber > Math.pow(2, 31) - 1) return 0;

return islowerZero ? -reverseNumber : reverseNumber;
};

http://example.com/算法与数据结构/整数反转/
作者
chen heng cheng
发布于
2024年5月30日
许可协议