Étant donné une chaîne de lettres et un ensemble de mots, affichez un ordre des mots afin qu'ils puissent être trouvés dans la chaîne en supprimant les lettres inutiles. Les mots peuvent apparaître plusieurs fois dans l'ensemble de mots. La chaîne d'entrée et tous les mots comprendront de 1 à 1 000 lettres minuscules chacune. Les lettres à supprimer peuvent apparaître à l'intérieur des mots ou entre les mots.
Votre programme ou fonction peut accepter la chaîne de lettres et les mots sous forme de listes, une chaîne ou à partir de STDIN et doit générer tous les mots dans un ordre correct en tant que sortie de liste ou de chaîne. S'il existe plusieurs solutions correctes, n'en éditez qu'une seule. S'il n'y a pas de solution correcte possible, affichez une liste vide ou une chaîne vide.
Exemples:
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)
C'est le golf de code. Le plus petit nombre d'octets gagne.
Edit: Expliqué que des caractères supplémentaires peuvent être à l'intérieur des mots.
cc
avant bb
mais les sous bb
- cc
chaînes et n'apparaissent qu'une seule fois et la bb
sous - chaîne apparaît en premier.
ccbcb
partie de la chaîne, nous sortons la sortie cc
puis bb
après avoir laissé tomber le milieu c
.