Menu
CoddyTech

Design Add and Search Words Data Structure

Créez un dictionnaire de mots avec deux opérations. addWord w stocke le mot w. search p indique si un mot stocké correspond au motif p : il a la même longueur et, à chaque position, le motif contient la même lettre ou un point ., qui représente n’importe quelle lettre.

L’opération i est ops[i] sur le mot ou le motif words[i]. Exécutez-les dans l’ordre sur un dictionnaire vide et renvoyez une chaîne pour chacune : "null" pour un addWord, "true" ou "false" pour un search.

Fonction

wordDictionaryOps(ops: string-array, words: string-array) → string-array
opsstring-array
les opérations, dans l’ordre où elles s’exécutent
wordsstring-array
le mot à ajouter ou le motif à rechercher, un par opération
Renvoiestring-array
une réponse par opération, sous forme de texte

Contraintes

  • 1 ≤ ops.length ≤ 2500
  • words.length == ops.length
  • Chaque ops[i] est addWord ou search.
  • 1 ≤ words[i].length ≤ 20
  • Le mot à ajouter ne contient que des lettres minuscules anglaises.
  • Un motif de recherche comporte des lettres minuscules anglaises et au plus 3 points.

Exemples

Entrée
ops = ["addWord", "addWord", "search", "search", "search", "search"]words = ["rose", "rise", "r.se", "ros", "rose.", "..s."]
Sortie
["null", "null", "true", "false", "false", "true"]
Explication
r.se correspond aux deux mots : le point remplace le o de rose et le i de rise. Un point ne représente jamais une lettre manquante, donc ros et rose. ne correspondent pas. ..s. correspond, car les deux mots ont un s en troisième position.
challenge icon

Pour aller plus loin

Comment étendriez-vous search si un motif pouvait aussi contenir *, qui représente toute séquence de lettres, même vide ?

Réinitialiser le code
def wordDictionaryOps(ops, words):
    # Écrivez le code ici

Test #1

Test #2

Test #3

Arguments

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

Résultat attendu

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