Inversión de enteros (Python, LeetCode)

Tabla de contenido

Descripción del Título

solución

Código

Tutorial de código

Portal


 

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
        

        

        

 

Portal

Enlace a la pregunta de prueba de LeetCode

función str ()

función int ()

Supongo que te gusta

Origin blog.csdn.net/TCatTime/article/details/107750869
Recomendado
Clasificación