Cuando era más joven, solía jugar un juego de palabras llamado Word chain . Fue muy simple. El primer jugador elige una palabra; el siguiente jugador dice otra palabra que comienza con la misma letra con la que terminó la palabra anterior. ¡Esto continúa para siempre hasta que alguien se rinde! El truco es que no puedes usar la misma palabra dos veces (¡a menos que todos olviden que esa palabra incluso se usó! Por lo general, jugamos con cierto tema para hacerlo más difícil. Pero ahora, quiero que hagas un programa para hacer esto por mí.
Desafío
Escriba un programa o función completa para encontrar todas las cadenas de palabras más largas posibles utilizando un conjunto de palabras dado y comience la palabra.
Este es el código de golf , por lo que gana el código más corto.
Entrada
Hay dos entradas: una lista y una palabra de inicio. La palabra de inicio no estará en la lista. Todas las entradas son minúsculas ASCII y la lista no contendrá palabras duplicadas.
Salida
Todas las secuencias de palabras de la lista de manera que:
La palabra de inicio es la primera palabra en la secuencia.
Cada palabra posterior comienza con la misma letra que la última letra de la palabra anterior.
La longitud de la secuencia es la más larga posible .
Si hay varias secuencias más largas, envíe todas ellas.
La secuencia no necesariamente necesita contener todas las palabras de la lista. A veces eso no es posible (ver casos de prueba). De nuevo, ¡ninguna palabra se puede usar dos veces!
Casos de prueba
In: [hello, turtle, eat, cat, people] artistic
Out: [artistic, cat, turtle, eat]
In: [lemonade, meatball, egg, grape] ham
Out: [ham, meatball, lemonade, egg, grape]
In: [cat, cute, ewok] attic
Out: [attic, cute, ewok]
In:[cat, cute, ewok, kilo, to, otter] attic
Out: [attic, cute, ewok, kilo, otter]
In:[cat, today, yoda, attic] ferret
Out: [ferret, today, yoda, attic, cat]
In: [cancel, loitering, gnocchi, improv, vivic, child, despair, rat, tragic, chimney, rex, xylophone] attic
Out: [[attic, child, despair, rat, tragic, cancel, loitering, gnocchi, improv, vivic, chimney], [attic, cancel, loitering, gnocchi, improv, vivic, child, despair, ra', tragic, chimney]]
In: [cat, today, yoda, artistic, cute, ewok, kilo, to, otter] attic
Out: [attic, cat, today, yoda, artistic, cute, ewok, kilo, otter]