Skip to content

Commit 44a9884

Browse files
authored
Improved task 7
1 parent 3a15dc4 commit 44a9884

File tree

2 files changed

+17
-13
lines changed

2 files changed

+17
-13
lines changed
Original file line numberDiff line numberDiff line change
@@ -1,24 +1,20 @@
11
// #Medium #Top_Interview_Questions #Math #Udemy_Integers
2-
// #2024_12_03_Time_66_ms_(87.91%)_Space_52_MB_(94.57%)
2+
// #2024_12_04_Time_67_ms_(85.38%)_Space_53.1_MB_(34.57%)
33

44
/**
55
* @param {number} x
66
* @return {number}
77
*/
88
var reverse = function (x) {
9-
let r = x
10-
if (r < 0) {
11-
r = r.toString().split('')
12-
let a = r.shift()
13-
r.reverse()
14-
r.unshift('-')
15-
16-
if (Number(r.join('')) > -2147483647) {
17-
return Number(r.join(''))
18-
}
9+
let rev = 0
10+
while (x !== 0) {
11+
rev = rev * 10 + (x % 10)
12+
x = Math.trunc(x / 10)
13+
}
14+
if (rev > Math.pow(2, 31) - 1 || rev < -Math.pow(2, 31)) {
15+
return 0
1916
}
20-
let reverseN = Number(r.toString().split('').reverse().join(''))
21-
return reverseN < 2147483647 ? reverseN : 0
17+
return rev
2218
}
2319

2420
export { reverse }

src/test/js/g0001_0100/s0007_reverse_integer/solution.test.js

+8
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,11 @@ test('reverse2', () => {
1313
test('reverse3', () => {
1414
expect(reverse(120)).toEqual(21)
1515
})
16+
17+
test('reverse4', () => {
18+
expect(reverse(1534236469)).toEqual(0)
19+
})
20+
21+
test('reverse5', () => {
22+
expect(reverse(-2147483648)).toEqual(0)
23+
})

0 commit comments

Comments
 (0)