给定一个字典文件(一个文本文件,每行包含一个单词或短语,可能带有标点符号,但不带数字;行均按字母顺序排列),您必须输出单词的每种组合,其中一个单词可以从一个单词中删除以换成另一个;删除的字母应放在括号中。
例如,输入
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的返回值(或根据需要写入文件)。
这是code-golf,因此以字节为单位的最短代码获胜。
(这是我在PPCG上遇到的第一个挑战-如果做错了任何事情,请告诉我,我将对其进行修复。)
mart mar mat ma
?会mar(t) ma(r)t ma(r) ma(t)
吗?