Giới thiệu
Một câu đố từ phổ biến là chuyển đổi một từ thành một từ khác thông qua một loạt các bước chỉ thay thế một chữ cái và luôn luôn dẫn đến một từ hợp lệ. Ví dụ: BAG có thể được chuyển đổi thành DOG thông qua đường dẫn gồm năm bước:
TÚI -> BAT -> CAT -> COT -> COG -> DOG
Đường dẫn ngắn hơn cũng tồn tại trong trường hợp này; ví dụ:
TÚI -> BOG -> DOG
Nếu người ta vẽ một biểu đồ có các đỉnh được gắn nhãn bằng các từ, với một cạnh giữa bất kỳ cặp từ nào khác nhau bởi một chữ cái, thì con đường ngắn nhất từ "BAG" đến "DOG" sẽ bao gồm hai cạnh.
Thử thách
Bạn phải viết một chương trình nhận đầu vào là "từ điển" các từ có cùng độ dài, đại diện cho tất cả các từ được phép có thể xuất hiện dưới dạng các bước trên một đường dẫn. Nó sẽ xuất ra ít nhất một "con đường ngắn nhất dài nhất", nghĩa là một đường dẫn giữa hai từ đó là:
không dài hơn bất kỳ con đường nào khác giữa hai từ đó;
ít nhất là chừng nào con đường ngắn nhất có thể giữa bất kỳ cặp từ nào khác trong danh sách.
Trong ngữ cảnh của biểu đồ được mô tả ở trên, độ dài của đường dẫn như vậy là đường kính của biểu đồ.
Trong trường hợp suy biến trong đó không có từ nào trong số các từ đầu vào có thể được chuyển đổi thành bất kỳ từ nào khác, xuất ra ít nhất một đường dẫn có độ dài bằng 0, nghĩa là một từ duy nhất.
Ví dụ
Đầu vào ["bag", "bat", "cat", "cot", "dot", "dog"] sẽ mang lại một đường dẫn đi qua tất cả sáu từ theo thứ tự đó (hoặc thứ tự ngược lại), vì đường đi ngắn nhất từ " túi "to" dog "trong từ điển này là dài nhất có thể đạt được, năm bước.
Đầu vào ["bag", "bat", "bot", "cat", "cot", "dot", "dog"] sẽ mang lại đường dẫn "bag, bat, bot, dot, dog" và / hoặc của nó đảo ngược.
Đầu vào ["mã", "golf", "nam", "buzz", "nốt ruồi", "vai trò", "khuôn", "lạnh", "vàng", "chế độ"] sẽ tạo ra một đường dẫn giữa "mã và "golf".
Đầu vào ["một", "hai", "sáu", "mười"] tương ứng với một biểu đồ không có cạnh, do đó, xuất ra một hoặc nhiều đường dẫn một từ (độ dài bằng không).
Nếu đầu vào chứa bất kỳ hai từ có độ dài không bằng nhau, đầu ra không được xác định.
Quy tắc
- Luật golf tiêu chuẩn được áp dụng
- Sẽ có nhiều con đường "ngắn nhất". Bạn phải xuất ít nhất một, nhưng được tự do xuất bao nhiêu tùy ý.
- Bạn được tự do quyết định cách từ điển đầu vào được truyền vào chương trình của bạn.
- Mã ngắn nhất trong byte thắng.
[]hoặc [[]])?