Als ich jünger war, verwende ich ein Wortspiel spielen namens Word - Kette . Es war sehr einfach. Der erste Spieler wählt ein Wort; der nächste Spieler sagt ein anderes Wort, das mit demselben Buchstaben beginnt, mit dem das vorherige Wort geendet hat. Das geht ewig so weiter, bis jemand aufgibt! Der Trick ist, dass Sie nicht dasselbe Wort zweimal verwenden können (es sei denn, jeder hat vergessen, dass dieses Wort überhaupt verwendet wurde!). Normalerweise spielen wir mit einem bestimmten Thema, um es schwieriger zu machen. Aber jetzt möchte ich, dass Sie ein Programm erstellen, um dies für mich zu tun.
Herausforderung
Schreiben Sie ein vollständiges Programm oder eine vollständige Funktion, um mit einer bestimmten Menge von Wörtern möglichst lange Wortketten zu finden und das Wort zu beginnen.
Das ist Code-Golf , also gewinnt der kürzeste Code!
Eingang
Es gibt zwei Eingänge: eine Liste und ein Startwort. Das Startwort ist nicht in der Liste enthalten. Alle Eingaben sind ASCII-Kleinbuchstaben, und die Liste enthält keine doppelten Wörter.
Ausgabe
Alle Wortfolgen aus der Liste, so dass:
Das Startwort ist das erste Wort in der Sequenz.
Jedes nachfolgende Wort beginnt mit dem gleichen Buchstaben wie der letzte Buchstabe des vorherigen Wortes.
Die Länge der Sequenz ist so lang wie möglich .
Wenn es mehrere längste Sequenzen gibt, geben Sie alle aus.
Die Sequenz muss nicht unbedingt alle Listenwörter enthalten. Manchmal ist das nicht möglich (siehe Testfälle). Auch hier kann kein Wort zweimal verwendet werden!
Testfälle
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]