본문 바로가기
LeetCode/Top Interview Q. - Easy

LeetCode. Reverse Bits

by 벤진[Benzene] 2020. 6. 22.

Problem:

Reverse bits of a given 32 bits unsigned integer.

 

Example 1:

Input: 00000010100101000001111010011100

Output: 00111001011110000010100101000000

Explanation: The input binary string 00000010100101000001111010011100 represents the unsigned integer 43261596, so return 964176192 which its binary representation is 00111001011110000010100101000000.

 

Example 2:

Input: 11111111111111111111111111111101

Output: 10111111111111111111111111111111

Explanation: The input binary string 11111111111111111111111111111101 represents the unsigned integer 4294967293, so return 3221225471 which its binary representation is 10111111111111111111111111111111.

 

Note:

  • Note that in some languages such as Java, there is no unsigned integer type. In this case, both input and output will be given as signed integer type and should not affect your implementation, as the internal binary representation of the integer is the same whether it is signed or unsigned.
  • In Java, the compiler represents the signed integers using 2's complement notation. Therefore, in Example 2 above the input represents the signed integer -3 and the output represents the signed integer -1073741825.

-Summary-

1. set variable 'res' to hold the answer and 'power' to save the index position.

2. while n is not 0, we iterate.

 - '&1' bit operation will give original value of the bits. 

 - shift to the 'power' will save the bits in the index that we want. (Index starting from leftmost and decrease once we update)

 - once we updated, then we do the right shift n by 1 to check next value.

class Solution:
    def reverseBits(self, n: int) -> int:
        res, power = 0, 31
        
        while n:
            res += (n&1) << power
            n = n >> 1
            power -= 1
            
        return res

Detail explanation of bit operation in python.

 

https://www.tutorialspoint.com/python/bitwise_operators_example.htm

 

Python Bitwise Operators Example - Tutorialspoint

Python Bitwise Operators Example There are following Bitwise operators supported by Python language. Operator Description Example & Binary AND Operator copies a bit to the result if it exists in both operands (a & b) (means 0000 1100) | Binary OR It copies

www.tutorialspoint.com

모든 문제에 대한 저작권은 LeetCode 회사에 있습니다. [Copyright © 2020 LeetCode]

'LeetCode > Top Interview Q. - Easy' 카테고리의 다른 글

LeetCode. Min Stack  (0) 2020.06.26
LeetCode. Shuffle an Array  (0) 2020.06.24
LeetCode. Pascal's Triangle  (0) 2020.06.21
LeetCode. Missing Number [Bit]  (0) 2020.06.19
LeetCode.Hamming Distance [Bit]  (0) 2020.06.18

댓글