Z09
Mesaj Çözme Yolları
Teknik Tanım & Görev
Boşlukları silinmiş bir mesaj elimize ulaştı. Mesaj yalnızca küçük harflerden oluşuyor ve elimizde bir KELİME SÖZLÜĞÜ var.
Mesajı, sözlükteki kelimeleri YAN YANA getirerek (araya hiçbir karakter eklemeden) kaç FARKLI ŞEKİLDE yeniden kurabiliriz?
Kurallar:
• Sözlükteki bir kelime BİRDEN FAZLA KEZ kullanılabilir.
• Sözlükte TEKRAR EDEN kelimeler olabilir; bunlar AYNI kelime sayılır (aynı ayrıştırma iki kez sayılmaz).
• Kelimelerin sırası mesajdaki sıraya uymalıdır.
Farklı ayrıştırma sayısını 1.000.000.007 modunda döndür.
Fonksiyon İmzası (Python)
cozme_yolu_sayisi(mesaj: str, sozluk: list[str]) -> intGirdi ve Çıktı Sözleşmesi
Çıktı Kuralı:[0, 1.000.000.006] aralığında tam sayı. Boş mesaj için 1.
Sistem Kısıtları (Constraints)
0 <= mesaj.length <= 10^5
1 <= sozluk.length <= 10^4
tüm metinler küçük ASCII harf
0 < sözlük[i].length <= 100Örnek Yürütme Analizi
mesaj = "kalemlik", sozluk = ["kalem","lik","ka","lem"]
1) "kalem" + "lik"
2) "ka" + "lem" + "lik"
cevap: 2Örnek Test Senaryoları (3)
Örnek 1
Girdi:
["kalemlik",["kalem","lik","ka","lem"]]Beklenen Çıktı:
2Örnek 2: Küçük Mesaj Alternatif Ayrıştırma
Girdi:
["kod",["k","o","d","ko"]]Beklenen Çıktı:
2Örnek 3: Tek Geçerli Yol
Girdi:
["test",["te","st"]]Beklenen Çıktı:
1