Tabla de contenido
Descripción del Título
Dado un entero de 32 bits con signo, debe invertir los dígitos de cada bit del entero. Para números de 32 bits desbordados, se devuelve 0.
Descripción de entrada / salida
ingresar | 321 |
Producción | 123 |
solución
El tema es relativamente simple y debes prestar atención a dos lugares:
- El número ingresado puede ser negativo. El número negativo sigue siendo negativo después de la inversión
- Si el número invertido supera los 32 bits, debe devolver 0
Código
class Solution:
def reverse(self, x: int) -> int:
positive = True
if x < 0:
positive = False
x = -x
x = int(str(x)[::-1])
if not positive:
x = -x
if self.out_of_range(x):
return 0
else:
return x
@staticmethod
def out_of_range(x: int) -> bool:
return x > 2 ** 31 - 1 or x < -2 ** 31
Tutorial de código
class Solución: def reverse (self, x: int) -> int: # Primero juzga lo positivo y lo negativo de x. Después de grabar, convierta x en un número positivo (conveniente para el orden inverso) positivo = Verdadero si x <0: positivo = Falso x = -x # orden inverso, y luego restaure x x = int (str (x) [:: - 1]) si no es positivo: x = -x # Determinar si x desborda 32 bits si self.out_of_range (x): return 0 else: return x @staticmethod def out_of_range (x: int) -> bool: return x> 2 * * 31-1 o x <-2 ** 31