Entrevista a los 150 mejoresMedio

Decodificar formas

Guía detallada e implementación Python para el problema 'Decode Ways'.

Declaración del problema

Medio

Un mensaje que contiene letras de la A a la Z se puede codificar en números utilizando la siguiente asignación:

'A' -> "1"

'B' -> "2"

...

'Z' -> "26"

Para decodificar un mensaje codificado, todos los dígitos deben agruparse y luego asignarse nuevamente a letras utilizando la asignación inversa anterior. Por ejemplo, "11106" se puede asignar a:

- "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) no es válida porque "06" no se puede asignar a 'F' ya que "6" es diferente de "06".

Dada una cadena s que contiene solo dígitos, devuelve el número de formas de decodificarla.

Escribe una función numDecodings(s: str) -> int.

Restricciones
  • 1 <= len(s) <= 100
  • s contains only digits and may contain leading zero(s)

Ejemplos

Example 1
Input
s = "12"
Output
2
Explanation

"12" could be decoded as "AB" (1 2) or "L" (12).

Example 2
Input
s = "226"
Output
3
Explanation

"226" could be decoded as "BZ" (2 26), "VF" (22 6), or "BBF" (2 2 6).

Example 3
Input
s = "06"
Output
0
Explanation

"06" cannot be mapped to 'F' because of the leading zero.

Need a Hint?
Considere el uso de estructuras de datos 1D específicas de DP, como conjuntos o montones.
Edge Cases to Watch
  • Estructuras de entrada vacías
  • Entradas de un solo elemento
  • Grandes límites numéricos

¿Listo para resolver?

Open the problem in PyRun's browser-based Python editor. Your code runs fully offline — no server required.

Abrir en el editor
Found this breakdown helpful?

PyRun is built and maintained by an independent solo developer. If this helped your interview prep, consider buying a coffee!

Buy me a coffee

Recursos recomendados de Python

Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.