Menu
CoddyTech

Word Break

Se te da una cadena s y una lista de palabras wordDict. Devuelve true si puedes dividir s en partes de modo que cada parte sea una palabra de wordDict, y false en caso contrario.

Las partes conservan su orden y, en conjunto, usan cada letra de s exactamente una vez. Puedes usar una palabra cualquier número de veces y no tienes que usar todas las palabras.

Función

wordBreak(s: string, wordDict: string-array) → boolean
sstring
la cadena que se va a dividir en palabras
wordDictstring-array
las palabras que puedes usar, tantas veces como quieras
Devuelveboolean
true si s puede dividirse en palabras del diccionario, false en caso contrario

Restricciones

  • 1 ≤ s.length ≤ 300
  • 1 ≤ wordDict.length ≤ 1000
  • 1 ≤ wordDict[i].length ≤ 20
  • s y cada palabra contiene únicamente letras minúsculas del alfabeto inglés.
  • Las palabras de wordDict son todas diferentes.

Ejemplos

Entrada
s = "sunflowerseed"wordDict = ["sun", "flow", "flower", "seed"]
Salida
true
Explicación
Divídelo como sun, flower, seed. Tomar flow después de sun no lleva a ninguna parte, ya que ninguna palabra empieza con er, que es lo que queda, así que la primera palabra que encaja no siempre es la correcta.

lock icon+21 pruebas ocultas al enviar

challenge icon

Para ir más allá

Devuelve la menor cantidad de palabras que puede usar un corte válido, o -1 si s no se puede cortar. ¿Qué cambia en la tabla y cambia el tiempo de ejecución?

Restablecer código
def wordBreak(s, wordDict):
    # Escribe el código aquí
Casos de prueba

Caso 1

Caso 2

Caso 3

Entrada

s = "sunflowerseed"
wordDict = ["sun", "flow", "flower", "seed"]

Esperado

true