Kiedy byłem młodszy, grałem w grę słowną o nazwie Łańcuch słów . To było bardzo proste. Pierwszy gracz wybiera słowo; następny gracz mówi inne słowo, które zaczyna się od tej samej litery, którą kończyło poprzednie słowo. Trwa to wiecznie, dopóki ktoś się nie poddaje! Sztuczka polega na tym, że nie możesz użyć tego samego słowa dwa razy (chyba że wszyscy zapomnieli, że to słowo zostało użyte!). Zwykle gramy z pewnym tematem, aby było trudniej. Ale teraz chcę, żebyś stworzył program, aby to dla mnie zrobić.
Wyzwanie
Napisz pełny program lub funkcję, aby znaleźć jak najdłuższe łańcuchy słów, używając danego zestawu słów i rozpocznij słowo.
To jest kod-golf , więc wygrywa najkrótszy kod!
Wejście
Istnieją dwa dane wejściowe: lista i słowo początkowe. Słowa początkowego nie będzie na liście. Wszystkie dane wejściowe są małymi literami ASCII, a lista nie będzie zawierać zduplikowanych słów.
Wynik
Wszystkie sekwencje słów z listy takie, że:
Słowo początkowe jest pierwszym słowem w sekwencji.
Każde kolejne słowo zaczyna się od tej samej litery, co ostatnia litera poprzedniego słowa.
Długość sekwencji jest najdłuższa z możliwych .
Jeśli istnieje wiele najdłuższych sekwencji, wyślij je wszystkie.
Sekwencja niekoniecznie musi zawierać wszystkie słowa z listy. Czasami nie jest to możliwe (patrz przypadki testowe). Znów żadne słowo nie może być użyte dwukrotnie!
Przypadki testowe
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]