leetcode_gym/_problems/reverseBits.md
2026-08-25 19:14:07 -06:00

52 lines
1.4 KiB
Markdown

---
layout: page
title: Reverse Bits
last_solved: Solved
category: Bits
leetcode_url: https://leetcode.com/problems/reverse-bits
status: Solved
---
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.
```
Solution
----------
Try doing it by hand for a small test case like a number with 4 bits (see image).
{% highlight python %}
def reverseBits(self, n: int) -> int:
output, power = 0, 31
while n:
output += (n&1) << power
n>>=1
power-=1
return output
{% endhighlight %}
![image1](https://5wizmw.dm.files.1drv.com/y4mU0kKdlap0lTnvFuIlluTwIYshPYaprTkHKJLryfgid6p0j5D9rNwGI7j-QbfbVWZin0j6QstrypxExk0g8t9rrKpBL1XGemV7OLVw9nyJNcbPI-5Cn_NNqTSR4UEfUe5uMePXSkTkz8QC0IuOl8WS1vyNMj6c9nHVv4daJn7TKBtZ5L4g5LtyU1oMP0jz42RO9FcIhcIexp0jaazW9F4Wg?width=2710&height=1085&cropmode=none)