[LeetCode] 0091. Formas de decodificar

Decodificar formas

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

Tabla de contenido

Medio


Un mensaje que contiene cartas de Arizona puede ser codificado en números usando el siguiente mapeo:

'A' -> "1" 'B' -> "2" ... 'Z' -> "26"

descodificar En un mensaje codificado, todos los dígitos deben agruparse y luego volver a asignarse en letras utilizando el método inverso al de la asignación anterior (puede haber varias formas). "11106" se puede mapear en:

  • "AAJF" con la agrupación (1 1 10 6)
  • "KJF" con la agrupación (11 10 6)

Tenga en cuenta que la agrupación (1 11 06) es inválido porque "06" no se puede mapear en 'F' desde "6" es diferente de "06".

dada una cuerda s que contiene sólo dígitos, volver el número de maneras de descodificar él.

Los casos de prueba se generan para que la respuesta encaje en un 32 bits entero.

 

Ejemplo 1:

Aporte: s = "12"
Producción: 2
Explicación: "12" podría decodificarse como "AB" (1 2) o "L" (12).

Ejemplo 2:

Aporte: s = "226"
Producción: 3
Explicación: "226" podría decodificarse como "BZ" (2 26), "VF" (22 6) o "BBF" (2 2 6).

Ejemplo 3:

Aporte: s = "06"
Producción: 0
Explicación: "06" no se puede asignar a "F" debido al cero inicial ("6" es diferente de "06").

 

Restricciones:

  • 1 <= s.longitud <= 100
  • s contiene sólo dígitos y puede contener ceros a la izquierda.

Pitón

				
					Complejidad de tiempo de #: O(n) Complejidad de espacio de #: O(n) de functools import clase lru_cache Solución: @lru_cache(None) def recursiveWithMemo(self, index: int, s: str) -> int: if index == len (s): devuelve 1 si s[índice] == '0': devuelve 0 si índice == len(s) - 1: devuelve 1 respuesta = self.recursiveWithMemo(índice + 1, s) si int(s[índice : índice + 2]) <= 26: respuesta += self.recursiveWithMemo(index + 2, s) return respuesta def numDecodings(self, s: str) -> int: return self.recursiveWithMemo(0, s) s = " Impresión de 12"(Solución().numDecodificaciones(s))
				
			
es_ESEspañol