З огляду на файл словника (текстовий файл, що містить слово чи фразу в кожному рядку, з можливими розділовими знаками, але немає цифр; рядки буквені), ви повинні вивести кожну комбінацію слів, де одну букву можна видалити зі слова, щоб зробити іншу; вилучений лист повинен бути укладений у дужки.
Наприклад, вхід
cat
cart
code
golf
ode
verify
versify
має дати вихід
ca(r)t
(c)ode
ver(s)ify
Кілька способів отримати одну і ту ж пару повинні бути показані лише один раз. Ви можете виводити scra(p)pedабо scrap(p)ed, але не обидва.
Вихід повинен бути впорядкований в алфавітному порядку за допомогою більш тривалого запису;
mart
mar
mat
ma
повинен мати вихід
ma(r)
ma(t)
ma(r)t
mar(t)
і останні два могли бути в будь-якому порядку.
Файл словника може містити великі літери, пробіли, дефіси або апострофи; їх слід ігнорувати. Наприклад,
inlay
in-play
повинні виробляти in(p)lay. Усі результати повинні бути в одному випадку. Допускається додаткове пробіл.
Вхід може бути STDIN або з файлу; її розділяють новими рядками. Вихідним може бути повернене значення функції або STDOUT (або записане у файл, якщо ви хочете).
Це код-гольф , тому виграє найкоротший код у байтах.
(Це мій перший виклик щодо PPCG - дайте мені знати, чи я зробив щось не так, і я це виправлю.)
mart mar mat ma? Було бmar(t) ma(r)t ma(r) ma(t)?