File tree 2 files changed +17
-13
lines changed
main/js/g0001_0100/s0007_reverse_integer
test/js/g0001_0100/s0007_reverse_integer
2 files changed +17
-13
lines changed Original file line number Diff line number Diff line change 1
1
// #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%)
3
3
4
4
/**
5
5
* @param {number } x
6
6
* @return {number }
7
7
*/
8
8
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
19
16
}
20
- let reverseN = Number ( r . toString ( ) . split ( '' ) . reverse ( ) . join ( '' ) )
21
- return reverseN < 2147483647 ? reverseN : 0
17
+ return rev
22
18
}
23
19
24
20
export { reverse }
Original file line number Diff line number Diff line change @@ -13,3 +13,11 @@ test('reverse2', () => {
13
13
test ( 'reverse3' , ( ) => {
14
14
expect ( reverse ( 120 ) ) . toEqual ( 21 )
15
15
} )
16
+
17
+ test ( 'reverse4' , ( ) => {
18
+ expect ( reverse ( 1534236469 ) ) . toEqual ( 0 )
19
+ } )
20
+
21
+ test ( 'reverse5' , ( ) => {
22
+ expect ( reverse ( - 2147483648 ) ) . toEqual ( 0 )
23
+ } )
You can’t perform that action at this time.
0 commit comments