Wawancara 150 TeratasSedang

Cara Dekode

Panduan terperinci dan implementasi Python untuk masalah 'Cara Dekode'.

Pernyataan Masalah

Sedang

Pesan yang berisi huruf dari A-Z dapat dikodekan menjadi angka menggunakan pemetaan berikut:

'A' -> "1"

'B' -> "2"

...

'Z' -> "26"

Untuk memecahkan kode pesan yang disandikan, semua digit harus dikelompokkan kemudian dipetakan kembali menjadi huruf menggunakan pemetaan terbalik di atas. Misalnya, "11106" dapat dipetakan menjadi:

- "AAJF" dengan pengelompokan (1 1 10 6)

- "KJF" dengan pengelompokan (11 10 6)

Perhatikan bahwa pengelompokan (1 11 06) tidak valid karena "06" tidak dapat dipetakan ke 'F' karena "6" berbeda dari "06".

Mengingat string s hanya berisi angka, kembalikan jumlah cara untuk memecahkan kodenya.

Tulis fungsi numDecodings(s: str) -> int.

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

Contoh

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?
Pertimbangkan untuk menggunakan struktur data khusus DP 1D seperti kumpulan atau tumpukan.
Edge Cases to Watch
  • Struktur masukan kosong
  • Masukan elemen tunggal
  • Batasan angka yang besar

Siap Memecahkannya?

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

Buka di 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

Sumber Daya Python yang Direkomendasikan

Perluas pengetahuan Anda dengan tutorial interaktif terkait, lembar contekan, dan perbandingan kode.