Encuentra las palabras que encajan con los fragmentos
Un rompecabezas popular consiste en recibir una lista de fragmentos de palabras y combinarlos para formar un conjunto de palabras, de modo que cada fragmento se use una sola vez.
Para este desafío, escribe una función que reciba una lista de fragmentos y devuelva una lista ordenada de 20 palabras que se puedan formar con ellos.
Ejemplo
find_words(["er", "haw", "as", "dock", "yuc", "prim", "ia", "sy", "sy", "y", "i", "thorn", "bur", "weed", "snow", "sia", "tus", "cac", "pop", "clo", "chid", "pan", "ris", "dahl", "rose", "dai", "drop", "dog", "ver", "bind", "heath", "fuch", "mine", "ca", "lil", "ter", "jas", "wood", "py", "or"])
➞ ["aster", "bindweed", "burdock", "cactus", "clover", "dahlia", "daisy", "dogwood", "fuchsia", "hawthorn", "heather", "iris", "jasmine", "lily", "orchid", "pansy", "poppy", "primrose", "snowdrop", "yucca"]Notas
- Se necesita un diccionario para resolver este rompecabezas. En las pruebas se proporciona un conjunto de palabras DICTIONARY; contiene todas las palabras necesarias (además de algunas más, por si acaso y para hacer que la tarea sea un poco más desafiante).
- Siempre tienes que devolver una lista de 20 palabras ordenadas de forma ascendente.
- La lista de fragmentos de entrada contendrá 40 o 60 fragmentos. Habrá dos fragmentos por palabra si la lista tiene 40 fragmentos; en caso contrario, habrá tres fragmentos por palabra.
- Una palabra siempre será simplemente los fragmentos combinados, sin espacios ni guiones entre ellos.
- Los fragmentos no son necesariamente únicos dentro de una lista de fragmentos.