Cho một tệp từ điển (một tệp văn bản chứa một từ hoặc cụm từ trên mỗi dòng, có thể có dấu câu nhưng không có số; các dòng được xếp theo thứ tự chữ cái), bạn phải xuất từng tổ hợp các từ trong đó một chữ cái có thể được loại bỏ khỏi một từ để tạo từ khác; các chữ cái bị loại bỏ nên được đặt trong ngoặc đơn.
Ví dụ: đầu vào
cat
cart
code
golf
ode
verify
versify
nên cho một đầu ra của
ca(r)t
(c)ode
ver(s)ify
Nhiều cách để có được cùng một cặp chỉ phải được hiển thị một lần. Bạn có thể xuất scra(p)ped
hoặc scrap(p)ed
, nhưng không phải cả hai.
Đầu ra nên được sắp xếp theo thứ tự abc bởi mục nhập dài hơn;
mart
mar
mat
ma
nên có một đầu ra của
ma(r)
ma(t)
ma(r)t
mar(t)
và hai cái sau có thể theo thứ tự.
Tệp từ điển có thể bao gồm viết hoa, dấu cách, dấu gạch nối hoặc dấu nháy đơn; những điều này nên được bỏ qua. Ví dụ,
inlay
in-play
nên sản xuất in(p)lay
. Đầu ra của bạn nên được trong cùng một trường hợp. Khoảng trắng thêm được cho phép.
Đầu vào có thể là STDIN hoặc từ một tệp; nó được phân tách bằng dòng mới. Đầu ra có thể là giá trị trả về của hàm hoặc STDOUT (hoặc được ghi vào tệp nếu bạn muốn).
Đây là mã golf , vì vậy mã ngắn nhất tính bằng byte sẽ thắng.
(Đây là thử thách đầu tiên của tôi trên PPCG - hãy cho tôi biết nếu tôi đã làm gì sai và tôi sẽ sửa nó.)
mart mar mat ma
gì? Nó sẽ làmar(t) ma(r)t ma(r) ma(t)
gì?