Ben küçükken, Word zinciri adlı bir kelime oyunu oynarım . Çok basitti. İlk oyuncu bir kelime seçer; bir sonraki oyuncu bir önceki kelimenin bittiği harfle başlayan başka bir kelime söyler. Biri vazgeçene kadar bu sonsuza kadar devam eder! Hile, aynı kelimeyi iki kez kullanamazsınız (herkes bu kelimenin bile kullanılmasını unutmadıkça!). Genellikle zorlaştırmak için belirli bir konuyla oynarız. Ama şimdi, bunu benim için yapacak bir program yapmanı istiyorum.
Meydan okuma
Belirli bir kelime kümesi ve başlangıç kelimesini kullanarak mümkün olan en uzun kelime zincirlerini bulmak için tam bir program veya işlev yazın.
Bu kod golfü , bu yüzden en kısa kod kazanır!
Giriş
İki giriş vardır: bir liste ve bir başlangıç sözcüğü. Başlangıç sözcüğü listede olmayacaktır. Girişlerin tümü küçük harf ASCII'dir ve liste yinelenen kelimeler içermez.
Çıktı
Listedeki tüm kelime dizileri şöyle:
Başlangıç kelimesi dizideki ilk kelimedir.
Sonraki her sözcük, önceki sözcüğün son harfiyle aynı harfle başlar.
Dizinin uzunluğu mümkün olan en uzundur .
Birden çok en uzun dizi varsa, bunların tümünü alın.
Dizinin tüm liste kelimelerini içermesi gerekmez. Bazen bu mümkün değildir (bkz. Test vakaları). Yine, hiçbir kelime iki kez kullanılamaz!
testcases
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]