150 principais entrevistasMédio

Métodos de decodificação

Guia detalhado e implementação de Python para o problema 'Decode Ways'.

Declaração do problema

Médio

Uma mensagem contendo letras de A a Z pode ser codificada em números usando o seguinte mapeamento:

'A' -> "1"

'B' -> "2"

...

'Z' -> "26"

Para decodificar uma mensagem codificada, todos os dígitos devem ser agrupados e então mapeados novamente em letras usando o mapeamento reverso acima. Por exemplo, "11106" pode ser mapeado em:

- "AAJF" com o agrupamento (1 1 10 6)

- "KJF" com o agrupamento (11 10 6)

Observe que o agrupamento (1 11 06) é inválido porque "06" não pode ser mapeado em 'F', pois "6" é diferente de "06".

Dada uma string s contendo apenas dígitos, retorne o número de maneiras de decodificá-la.

Escreva uma função numDecodings(s: str) -> int.

Restrições
  • 1 <= len(s) <= 100
  • s contains only digits and may contain leading zero(s)

Exemplos

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 usar estruturas de dados 1D específicas de DP, como conjuntos ou heaps.
Edge Cases to Watch
  • Estruturas de entrada vazias
  • Entradas de elemento único
  • Grandes limites numéricos

Pronto para resolver?

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

Abrir no 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 Python recomendados

Expanda seu conhecimento com tutoriais interativos relacionados, folhas de dicas e comparações de código.