给定一个字母字符串和一组单词,输出单词的顺序,以便可以通过删除不需要的字母在字符串中找到它们。在单词集中单词可能出现多次。输入字符串和所有单词将分别包含1到1000个小写字母。要放置的字母可能出现在单词内部或单词之间。
您的程序或函数可以接受字母字符串和单词作为列表,字符串或来自STDIN,并且必须以正确的顺序输出所有单词作为列表或字符串输出。如果有多个正确的解决方案,请仅输出其中之一。如果没有正确的解决方案,请输出一个空列表或一个空字符串。
例子:
dogcatfrog cat frog dog
-> dog cat frog
xxcatfixsxhingonxgrapexxxfishingcxat cat grape catfish fishing
-> catfish grape fishing cat
dababbabadbaccbcbaaacdacdbdd aa bb cc dd ba ba ba ab ac da db dc
-> da ab ba ba ba cc bb aa ac dc db dd
flea antelope
->
(no solution)
这是代码高尔夫。最低字节数获胜。
编辑:说明多余的字符可以在单词内。
cc
前面,bb
但是bb
和cc
子字符串仅出现一次,并且bb
子字符串首先出现。
ccbcb
字符串的一部分中,我们输出thethe中的内容,cc
然后bb
将它们放在中间c
。