Menu
CoddyTech

Design Add and Search Words Data Structure

Crea un dizionario di parole con due operazioni. addWord w memorizza la parola w. search p indica se una parola memorizzata corrisponde al modello p: stessa lunghezza e, in ogni posizione, il modello contiene la stessa lettera oppure un punto ., che rappresenta una qualsiasi lettera.

L’operazione i è ops[i] sulla parola o sul modello words[i]. Esegui le operazioni nell’ordine indicato su un dizionario vuoto e restituisci una stringa per ciascuna: "null" per un addWord, "true" o "false" per un search.

Funzione

wordDictionaryOps(ops: string-array, words: string-array) → string-array
opsstring-array
le operazioni, nell'ordine in cui vengono eseguite
wordsstring-array
la parola da aggiungere o il modello da cercare, uno per operazione
Restituiscestring-array
una risposta per operazione, come testo

Vincoli

  • 1 ≤ ops.length ≤ 2500
  • words.length == ops.length
  • Ogni ops[i] è addWord oppure search.
  • 1 ≤ words[i].length ≤ 20
  • Una parola da aggiungere contiene solo lettere inglesi minuscole.
  • Un modello da cercare contiene lettere inglesi minuscole e al massimo 3 punti.

Esempi

Input
ops = ["addWord", "addWord", "search", "search", "search", "search"]words = ["rose", "rise", "r.se", "ros", "rose.", "..s."]
Output
["null", "null", "true", "false", "false", "true"]
Spiegazione
r.se corrisponde a entrambe le parole: il punto copre la o di rose e la i di rise. Un punto non rappresenta mai una lettera mancante, quindi ros e rose. non corrispondono. ..s. corrisponde, poiché entrambe le parole hanno la s come terza lettera.
challenge icon

Per approfondire

Come estenderesti search se un pattern potesse contenere anche *, che rappresenta una sequenza qualsiasi di lettere, anche vuota?

Ripristina il codice
def wordDictionaryOps(ops, words):
    # Scrivi il codice qui

Test #1

Test #2

Test #3

Argomenti

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

Output atteso

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