LeetCode 7 — Reverse Integer

Séptimo y último problema de Bit Manipulation. Invertir dígitos de un int 32 bits. La trampa: detectar overflow sin usar 64 bits.

Enunciado

Invierte los dígitos de un signed 32-bit int. Si overflowa el rango [-2^31, 2^31-1], devuelve 0.


Solución — Iterativa con check de overflow

class Solution:
    def reverse(self, x):
        sign = -1 if x < 0 else 1
        x = abs(x)
        result = 0
        while x:
            digit = x % 10
            x //= 10
            result = result * 10 + digit
        result *= sign
        if result < -2**31 or result > 2**31 - 1:
            return 0
        return result

Análisis: O(log x).


Cierre Bit Manipulation

#ProblemaIdea
1136-single-numberXOR cancela duplicados
2191-number-of-1-bitsn & (n-1) Brian Kernighan
3338-counting-bitsDP con i >> 1
4190-reverse-bitsShift y OR
5268-missing-numberGauss o XOR
6371-sum-of-two-integersHalf-adder
7EsteReverse + check overflow

Para tu perfil HW: esta categoría te resultará la más familiar de todo el NeetCode 150. XOR, máscaras, shifts son lenguaje habitual de firmware.


Estado

  • Leído
  • Implementado desde cero
  • Resuelto en LeetCode
  • Patrón Bit Manipulation cerrado [OK]
  • NEETCODE 150 COMPLETO