150 najlepszych wywiadówŚredni

Rozszyfrowanie sposobów

Szczegółowy przewodnik i implementacja Python dla problemu „Sposoby dekodowania”.

Oświadczenie o problemie

Średni

Wiadomość zawierającą litery od A-Z można zakodować w cyfry, korzystając z następującego mapowania:

„A” -> „1”

„B” -> „2”

...

„Z” -> „26”

Aby zdekodować zakodowaną wiadomość, wszystkie cyfry muszą zostać zgrupowane, a następnie ponownie odwzorowane na litery, korzystając z powyższego odwrotnego mapowania. Na przykład „11106” można zmapować na:

- „AAJF” z grupowaniem (1 1 10 6)

- "KJF" z zgrupowaniem (11 10 6)

Należy zauważyć, że grupowanie (1 11 06) jest nieprawidłowe, ponieważ „06” nie może zostać odwzorowane na „F”, ponieważ „6” różni się od „06”.

Biorąc pod uwagę ciąg s zawierający tylko cyfry, zwróć liczbę sposobów jego dekodowania.

Napisz funkcję numDecodings(s: str) -> int.

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

Przykłady

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?
Rozważ użycie struktur danych specyficznych dla 1D DP, takich jak zestawy lub sterty.
Edge Cases to Watch
  • Puste struktury wejściowe
  • Wejścia jednoelementowe
  • Duże granice liczbowe

Gotowy do rozwiązania?

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

Otwórz w Edytorze
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

Polecane zasoby Pythona

Poszerzaj swoją wiedzę dzięki powiązanym interaktywnym samouczkom, ściągawkom i porównaniom kodów.