Lý lịch
Ba năm trước, anh chàng Tom Murphy này đã đưa nó vào đầu để mở rộng ý tưởng về một portmanteau cho tất cả các từ trong một ngôn ngữ và gọi đây là một portmantout ( portmanteau plus tout [tiếng Pháp cho tất cả ]). Xác định tiếng Anh là danh sách 108.709 từ, anh quản lý để tìm một chuỗi gồm 611.820 chữ cái với hai thuộc tính sau:
- Mỗi từ tiếng Anh được chứa trong chuỗi.
- Một số vùng lân cận chứa bất kỳ hai chữ cái liền kề trong chuỗi là một từ tiếng Anh.
Đây là một liên kết đến một trang mà trên đó có thể tìm thấy portmantout này (cùng với một lời giải thích video).
Một portmantout
Điều đầu tiên trong hai thuộc tính của một portmantout là dễ hiểu. Thứ hai có thể yêu cầu một số lời giải thích.
Về cơ bản, các từ phải chồng chéo. "Golfcode" sẽ không bao giờ xuất hiện trong phần mô tả tiếng Anh, vì không có từ nào có chứa "fc". Tuy nhiên, bạn có thể tìm thấy "codegolf" trong một bản portmantout, vì "cái tôi" thu hẹp khoảng cách (và tất cả các cặp chữ cái khác nằm trong "mã" hoặc "golf").
Nhiệm vụ của bạn:
Viết chương trình hoặc hàm lấy danh sách các chuỗi và trả về bất kỳ portmantout nào của danh sách.
Mã Python 3 này sẽ xác minh một portmantout.
Các trường hợp thử nghiệm
Tất cả các danh sách là không có thứ tự; đó là,
{"code", "ego", "golf"} -> "codegolf"
{"more", "elm", "maniac"} -> "morelmaniac" or "morelmorelmaniac" or "morelmorelmorelmaniac" or...
Would a morelmaniac be some sort of mycologist?
{"ab", "bc", "cd", "de", "ef", "fg", "gh", "hi", "ij", "jk", "kl", "lm", "mn", "no", "op", "pq", "qr", "rs", "st", "tu", "uv", "vw", "wx", "xy", "yz", "za"} -> "abcdefghijklmnopqrstuvwxyza" or "rstuvwxyzabcdefghijklmnopqrstuvwxyzabcdef" or any 27+ letters in order
Và tại sao không? Số lượng lớn trên trang web của Murphy, nếu mã của bạn thực thi trong thời gian hợp lý.
Quy tắc
- Mã của bạn phải dừng lại.
- Bạn không cần phải trả lại cùng một portmantout với mỗi lần thực hiện.
- Bạn có thể giả định tất cả các chuỗi chỉ gồm chữ thường
a
thông quaz
. - Nếu không có khả năng portmantout, chương trình của bạn có thể làm bất cứ điều gì. Ví dụ:
{"most", "short", "lists"}
- Quy tắc chuẩn cho I / O và sơ hở được áp dụng.
Đây là môn đánh gôn , vì vậy giải pháp ngắn nhất (tính bằng byte) trong mỗi ngôn ngữ sẽ thắng! Chúc bạn chơi golf vui vẻ!
{"sic", "bar", "rabbits", "cradle"} -> "barabbitsicradle"
{"mauve", "elated", "cast", "electric", "tame"} -> "mauvelectricastamelated"
(nhiều trường hợp thử nghiệm hơn)