Leetcode - más uno (66)

Descripción Título: un entero no negativo dado un array no vacío de números enteros representado por más uno sobre la base de este número. La mayoría dígito significativo almacenado en la primera matriz, cada elemento de las tiendas de array sólo un solo dígito. Es posible suponer que, además del número entero 0, el número entero no comienza con un cero.

   

 

ideas específicas: añadir uno aquí se pueden dividir en tres casos:

  1. La lista no es el último carácter es de 9: directamente al último carácter para ser 1
  2. La lista del último carácter a 9:00: Si el 2.1 Si el primer carácter es 9, la necesidad de llevar, el primer bit es 1, la otra posición 0; 2,2 si el primer carácter no es 0, entonces todos los dígitos 9 mano-bit con valor 0
. 1  clase Solución:
 2      DEF PlusOne (Ser, dígitos: Listado [int]) -> Lista [int]:
 . 3          para que en el rango (. 1, len (dígitos) hecho +1 ):
 . 4              SI !. Dígitos [-i] = 9 :     # recorrido inverso 
. 5                  dígitos [-i] + = 1
 . 6                  de retorno dígitos
 . 7              dígitos [-i] = 0    # se pone a 0 los bits 9 
. 8          digits.insert (0,1)    # si necesita para llevar a la primera inserción 1 
9          retorno dígitos

Otro método es el uso de cadenas y conversión entera directamente no se relacionan con lo que el algoritmo

. 1  clase Solución:
 2      DEF PlusOne (self, dígitos: Lista [int]) -> Lista [int]:
 . 3          di_str = '' 
4.          Para Número de dígitos:
 5.              Di_str + = STR (Número)
 6.          Di_num = int (di_str) + 1    # en los elementos de la lista juntos en una cadena y luego se convierte en un número entero más uno 
. 7          dígitos = []    # convertidos a una lista de salida 
8.          para Palabra en STR (di_num):
 . 9              digits.append (int (Word) )
 10          de retorno dígitos

 

                      

 

Supongo que te gusta

Origin www.cnblogs.com/shawn-young/p/12579386.html
Recomendado
Clasificación