LeetCode 190 — Reverse Bits
Cuarto problema de Bit Manipulation. Invertir los 32 bits de un entero.
Enunciado
Invierte los 32 bits de un unsigned int.
Solución — Bit shift
class Solution:
def reverseBits(self, n):
result = 0
for _ in range(32):
result = (result << 1) | (n & 1)
n >>= 1
return resultAnálisis: O(32) = O(1).
Lógica
En cada iteración: shift result a la izquierda, añadir el bit más bajo de n, shift n a la derecha. 32 veces.
Conexiones
- Próximo: 268-missing-number.
Estado
- Leído
- Implementado desde cero
- Resuelto en LeetCode