En İyi 150 RöportajKolay

Tasarım Kelime Ekleme ve Arama

'Kelime Ekleme ve Arama Tasarımı' sorunu için ayrıntılı kılavuz ve Python uygulaması.

Sorun Bildirimi

Kolay

Yeni kelimeler eklemeyi ve bir dizenin önceden eklenmiş herhangi bir dizeyle eşleşip eşleşmediğini bulmayı destekleyen bir veri yapısı tasarlayın.

WordDictionary sınıfını uygulayın:

- WordDictionary() Nesneyi başlatır.

- addWord(word: str) Veri yapısına word ekler, daha sonra eşleştirilebilir.

- search(word: str) -> bool Veri yapısında word ile eşleşen herhangi bir dize varsa True'yu, aksi takdirde False'ı döndürür. kelime noktalar içerebilir '.' noktaların herhangi bir harfle eşleştirilebileceği yer.

Giriş, işlemlerin ve argümanların bir listesidir. Sonuçların bir listesini döndüren wordDictionary(operations: list, arguments: list) -> list işlevini uygulayın (yapıcı/addWord için Yok, arama için bool).

Kısıtlamalar
  • 1 <= len(word) <= 25
  • word in addWord consists of lowercase English letters
  • word in search consists of '.' or lowercase English letters
  • At most 10^4 calls will be made to addWord and search

Örnekler

Example 1
Input
operations = ["WordDictionary", "addWord", "addWord", "addWord", "search", "search", "search", "search"], arguments = [[], ["bad"], ["dad"], ["mad"], ["pad"], ["bad"], [".ad"], ["b.."]]
Output
[None, None, None, None, False, True, True, True]
Explanation

Initialize. Add "bad", "dad", "mad". search("pad") -> False. search("bad") -> True. search(".ad") -> True. search("b..") -> True.

Need a Hint?
Kümeler veya yığınlar gibi Trie'ye özgü veri yapılarını kullanmayı düşünün.
Edge Cases to Watch
  • Boş giriş yapıları
  • Tek eleman girişleri
  • Büyük sayısal sınırlar

Çözmeye Hazır mısınız?

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

Editörde Aç
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

Önerilen Python Kaynakları

İlgili etkileşimli eğitimler, yardımcı sayfalar ve kod karşılaştırmalarıyla bilginizi genişletin.