Menu
CoddyTech

Design Add and Search Words Data Structure

Construye un diccionario de palabras con dos operaciones. addWord w almacena la palabra w. search p indica si alguna palabra almacenada coincide con el patrón p: tiene la misma longitud y, en cada posición, el patrón contiene la misma letra o un punto ., que representa cualquier letra.

La operación i es ops[i] sobre la palabra o el patrón words[i]. Ejecútalas en orden sobre un diccionario vacío y devuelve una cadena por cada una: "null" para un addWord, "true" o "false" para un search.

Función

wordDictionaryOps(ops: string-array, words: string-array) → string-array
opsstring-array
las operaciones, en el orden en que se ejecutan
wordsstring-array
la palabra que se va a añadir o el patrón que se va a buscar, uno por operación
Devuelvestring-array
una respuesta por operación, como texto

Restricciones

  • 1 ≤ ops.length ≤ 2500
  • words.length == ops.length
  • Each ops[i] es addWord o search.
  • 1 ≤ words[i].length ≤ 20
  • Una palabra que se va a añadir contiene únicamente letras minúsculas del inglés.
  • Un patrón de búsqueda contiene letras minúsculas del inglés y como máximo 3 puntos.

Ejemplos

Entrada
ops = ["addWord", "addWord", "search", "search", "search", "search"]words = ["rose", "rise", "r.se", "ros", "rose.", "..s."]
Salida
["null", "null", "true", "false", "false", "true"]
Explicación
r.se coincide con ambas palabras: el punto abarca la o de rose y la i de rise. Un punto nunca representa una letra que falta, así que ros y rose. no coinciden. ..s. coincide, ya que ambas palabras tienen una s en tercer lugar.
challenge icon

Para ir más allá

¿Cómo ampliarías search si un patrón también pudiera contener *, que representa cualquier secuencia de letras, incluso una vacía?

Restablecer código
def wordDictionaryOps(ops, words):
    # Escribe el código aquí

Prueba #1

Prueba #2

Prueba #3

Argumentos

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

Salida Esperada

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