Skip to content

190. Reverse Bits

Divide and Conquer Bit Manipulation

Problem - Reverse Bits

Easy

Reverse bits of a given 32 bits signed integer.

 

Example 1:

Input: n = 43261596

Output: 964176192

Explanation:

Integer Binary
43261596 00000010100101000001111010011100
964176192 00111001011110000010100101000000

Example 2:

Input: n = 2147483644

Output: 1073741822

Explanation:

Integer Binary
2147483644 01111111111111111111111111111100
1073741822 00111111111111111111111111111110

 

Constraints:

  • 0 <= n <= 231 - 2
  • n is even.

 

Follow up: If this function is called many times, how would you optimize it?

Solutions

1
2
3
4
5
6
7
class Solution:
    def reverseBits(self, n: int) -> int:
        result = 0
        for i in range(32):
            result |= (n & 1) << (31 - i)
            n >>= 1
        return result

Submission Stats:

  • Runtime: 37 ms (71.04%)
  • Memory: 17.8 MB (25.85%)