Explore diversas soluciones LeetCode en Python, C++, JavaScript, SQL y TypeScript. Ideal para preparación de entrevistas, aprendizaje y práctica de código en múltiples lenguajes de programación. Enlace de repositorio de Github
Bits inversos de un entero sin signo de 32 bits determinado.
Nota:
- Tenga en cuenta que en algunos lenguajes, como Java, no existe un tipo entero sin signo. En este caso, tanto la entrada como la salida se proporcionarán como un tipo entero con signo. No deberían afectar su implementación, ya que la representación binaria interna del número entero es la misma. , ya sea firmado o no.
- En Java, el compilador representa los enteros con signo usando Notación en complemento a 2Por lo tanto, en Ejemplo 2 arriba, la entrada representa el entero con signo
-3
y la salida representa el entero con signo-1073741825
.
Ejemplo 1:
Aporte: norte = 00000010100101000001111010011100 Producción: 964176192 (00111001011110000010100101000000) Explicación: La cadena binaria de entrada 00000010100101000001111010011100 representa el entero sin signo 43261596, por lo que devuelve 964176192 cuya representación binaria es 00111001011110000010100101000000.
Ejemplo 2:
Aporte: norte = 11111111111111111111111111111101 Producción: 3221225471 (10111111111111111111111111111111) Explicación: La cadena binaria de entrada 11111111111111111111111111111101 representa el entero sin signo 4294967293, por lo que devuelve 3221225471 cuya representación binaria es 10111111111111111111111111111111.
Restricciones:
- La entrada debe ser una cadena binaria de longitud
32
Hacer un seguimiento: Si esta función se llama muchas veces, ¿cómo la optimizarías?
Pitón
solución de clase { público: uint32_t ReverseBits(uint32_t n) { uint32_t ret = 0, potencia = 31; mientras (n! = 0) { ret += (n & 1) << potencia; = 1; } devolver retorno; } };