File tree 2 files changed +39
-23
lines changed
2 files changed +39
-23
lines changed Original file line number Diff line number Diff line change 3
3
* @return {number } - a positive integer
4
4
*/
5
5
const reverseBits = ( n ) => {
6
- let str = "" ;
6
+ let res = 0
7
7
console . log ( `check: ${ ( n ) } ` )
8
- // n = (n) >> 1;
9
- // n = (n) >> 1;
10
- console . log ( `check: ${ n } ` )
11
- //
12
- // let reversed = 0;
13
- // const totalBits = 32;
14
- //
15
- // for (let i = 0; i < totalBits; i++) {
16
- // reversed = (reversed << 1) | (n & 1);
17
- // n = n >> 1;
18
- // }
19
- // console.log(`check: ${reversed}`)
8
+ console . log ( `check: ${ n >> 1 } ` )
9
+ console . log ( `check: ${ 0 & 1 } ` )
20
10
21
- while ( n != 0 ) {
22
- console . log ( `before: ${ n } ` )
23
- str += ( n & 1 ) ? "1" : "0" ;
24
- n = n >> 1 ;
25
- console . log ( `after: ${ n } ` )
26
- // n = 0;
11
+ // while (0 !== n) {
12
+ for ( let i = 0 ; i < 32 ; i ++ ) {
13
+ // console.log(`before: ${n}`)
14
+ // str += (n & 1) ? "0" : "1";
15
+ // n = n << 1;
16
+ // console.log(`after: ${n}`)
17
+ let lastBit = n & 1 ;
18
+ let revBit = lastBit << ( 31 - i ) ;
19
+ res = res | revBit ;
20
+ n >>>= 1 ;
27
21
}
28
22
29
- console . log ( "str" )
30
- console . log ( str )
23
+ res >>>= 0 ;
24
+ console . log ( "res" )
25
+ console . log ( res )
31
26
32
27
return ;
33
28
}
34
29
35
- reverseBits ( 00000010100101000001111010011100 ) // 43261596 -> 964176192
36
- // reverseBits(11111111111111111111111111111101)
30
+ // reverseBits(00000010100101000001111010011100) // 43261596 -> 964176192
31
+ reverseBits ( 11111111111111111111111111111101 )
Original file line number Diff line number Diff line change
1
+ /**
2
+ * @param {number } n - a positive integer
3
+ * @return {number } - a positive integer
4
+ */
5
+ // NOTE THIS IS THE CORRECT SOLUTION BUT I AM STILL QUITE LOST
6
+ const reverseBits = ( n ) => {
7
+ let res = 0 ;
8
+
9
+ for ( let i = 0 ; i < 32 ; i ++ ) {
10
+ let lastBit = n & 1 ;
11
+ let revBit = lastBit << ( 31 - i ) ;
12
+ res = res | revBit ;
13
+ n >>>= 1 ;
14
+ }
15
+
16
+ res >>>= 0 ;
17
+ console . log ( "res" )
18
+ console . log ( res )
19
+
20
+ return res ;
21
+ }
You can’t perform that action at this time.
0 commit comments