Menu
CoddyTech

Design Add and Search Words Data Structure

Buat dictionary kata dengan dua operasi. addWord w menyimpan kata w. search p memberi tahu apakah ada kata yang tersimpan dan cocok dengan pola p: panjangnya sama, dan di setiap posisi, pola berisi huruf yang sama atau titik ., yang mewakili satu huruf apa pun.

Operasi i adalah ops[i] pada kata atau pola words[i]. Jalankan operasi tersebut secara berurutan pada dictionary kosong dan kembalikan satu string untuk setiap operasi: "null" untuk addWord, "true" atau "false" untuk search.

Fungsi

wordDictionaryOps(ops: string-array, words: string-array) → string-array
opsstring-array
operasi-operasi tersebut, sesuai urutan pelaksanaannya
wordsstring-array
kata yang akan ditambahkan atau pola yang akan dicari, satu per operasi
Mengembalikanstring-array
satu jawaban per operasi, sebagai teks

Batasan

  • 1 ≤ ops.length ≤ 2500
  • words.length == ops.length
  • Setiap ops[i] adalah addWord atau search.
  • 1 ≤ words[i].length ≤ 20
  • Sebuah kata yang akan ditambahkan hanya berisi huruf kecil bahasa Inggris.
  • Sebuah pola pencarian berisi huruf kecil bahasa Inggris dan paling banyak 3 titik.

Contoh

Input
ops = ["addWord", "addWord", "search", "search", "search", "search"]words = ["rose", "rise", "r.se", "ros", "rose.", "..s."]
Output
["null", "null", "true", "false", "false", "true"]
Penjelasan
r.se cocok dengan kedua kata: titik menggantikan huruf o pada rose dan huruf i pada rise. Titik tidak pernah mewakili huruf yang hilang, jadi ros dan rose. tidak cocok. ..s. cocok karena kedua kata memiliki huruf s pada posisi ketiga.
challenge icon

Pertanyaan lanjutan

Bagaimana kamu akan memperluas search jika sebuah pola juga dapat memuat *, yang mewakili rangkaian huruf apa pun, termasuk rangkaian kosong?

Reset kode
def wordDictionaryOps(ops, words):
    # Tulis kodemu di sini

Tes #1

Tes #2

Tes #3

Argumen

ops = ["addWord", "addWord", "search", "search", "search", "search"]
words = ["rose", "rise", "r.se", "ros", "rose.", "..s."]

Output yang diharapkan

["null", "null", "true", "false", "false", "true"]