Menu
CoddyTech

Decode Ways

Pesan yang terdiri dari huruf kapital dikodekan dengan A = 1, B = 2, dan seterusnya hingga Z = 26, lalu kode-kode tersebut ditulis tanpa pemisah. Diberikan string digit s, kembalikan jumlah pesan yang mungkin menghasilkan string tersebut.

Satu huruf dibaca dari satu digit atau dua digit berurutan, dan kode tidak pernah dimulai dengan 0: 06 bukan 6, dan 0 saja bukan huruf. Jika tidak ada pembacaan yang berhasil, kembalikan 0.

Fungsi

numDecodings(s: string) → integer
sstring
string digit yang akan didekode
Mengembalikaninteger
jumlah pesan berupa huruf yang dikodekan menjadi s

Batasan

  • 1 ≤ s.length ≤ 100
  • s hanya berisi digit 0 sampai 9, dan bisa diawali dengan 0.
  • Setiap prefiks dan sufiks s memiliki kurang dari 231 kemungkinan pembacaan, sehingga jawabannya dan setiap hitungan yang kamu peroleh sepanjang proses muat dalam bilangan bulat 32-bit bertanda.

Contoh

Input
s = "2611"
Output
4
Penjelasan
Keempat pembacaannya adalah 2 6 1 1 (BFAA), 26 1 1 (ZAA), 2 6 11 (BFK), dan 26 11 (ZK). Digit tengah tidak pernah berpasangan karena 61 lebih besar daripada 26.
challenge icon

Pertanyaan lanjutan

Bagaimana jika s juga dapat berisi *, yang mewakili digit apa pun dari 1 hingga 9? Bisakah kamu menghitung kemungkinan pembacaan dalam waktu O(n), modulo 10^9+7?

Reset kode
def numDecodings(s):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

s = "2611"

Output yang diharapkan

4