Khi tôi còn trẻ, tôi thường chơi một trò chơi chữ chuỗi Word . Nó rất đơn giản. Người chơi đầu tiên chọn một từ; người chơi tiếp theo nói một từ khác bắt đầu bằng cùng một chữ cái mà từ trước đó kết thúc bằng. Điều này diễn ra mãi mãi cho đến khi ai đó từ bỏ! Thủ thuật là, bạn không thể sử dụng cùng một từ hai lần (trừ khi mọi người quên từ đó thậm chí đã được sử dụng!). Thông thường chúng ta chơi với một chủ đề nhất định để làm cho nó khó hơn. Nhưng bây giờ, tôi muốn bạn làm một chương trình để làm điều này cho tôi.
Thử thách
Viết một chương trình hoặc hàm đầy đủ để tìm tất cả các chuỗi từ dài nhất có thể bằng cách sử dụng một bộ từ nhất định và từ bắt đầu.
Đây là môn đánh gôn , vì vậy đoạn mã ngắn nhất sẽ thắng!
Đầu vào
Có hai đầu vào: một danh sách và một từ bắt đầu. Từ bắt đầu sẽ không có trong danh sách. Các đầu vào đều là chữ thường ASCII và danh sách sẽ không chứa các từ trùng lặp.
Đầu ra
Tất cả các chuỗi từ trong danh sách sao cho:
Từ bắt đầu là từ đầu tiên trong chuỗi.
Mỗi từ tiếp theo bắt đầu bằng cùng một chữ cái với chữ cái cuối cùng của từ trước đó.
Độ dài của chuỗi là dài nhất có thể .
Nếu có nhiều chuỗi dài nhất, hãy xuất tất cả chúng.
Trình tự không nhất thiết phải chứa tất cả các từ danh sách. Đôi khi điều đó là không thể (xem thử nghiệm). Một lần nữa, không có từ nào có thể được sử dụng hai lần!
Tủ thử
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]