Le migliori 150 intervisteMedio

Decodificare i modi

Guida dettagliata e implementazione Python per il problema 'Decode Ways'.

Dichiarazione del problema

Medio

Un messaggio contenente lettere dalla A alla Z può essere codificato in numeri utilizzando la seguente mappatura:

'A' -> "1"

'B' -> "2"

...

'Z' -> "26"

Per decodificare un messaggio codificato, tutte le cifre devono essere raggruppate e quindi mappate nuovamente in lettere utilizzando la mappatura inversa sopra descritta. Ad esempio, "11106" può essere mappato in:

- "AAJF" con il raggruppamento (1 1 10 6)

- "KJF" con il raggruppamento (11 10 6)

Tieni presente che il raggruppamento (1 11 06) non è valido perché "06" non può essere mappato in "F" poiché "6" è diverso da "06".

Data una stringa contenente solo cifre, restituisce il numero di modi per decodificarla.

Scrivi una funzione numDecodings(s: str) -> int.

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

Esempi

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?
Prendi in considerazione l'utilizzo di strutture dati specifiche per DP 1D come set o heap.
Edge Cases to Watch
  • Strutture di input vuote
  • Ingressi a elemento singolo
  • Grandi limiti numerici

Pronto a risolvere?

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

Apri nell'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

Risorse Python consigliate

Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.