Geben Sie bei einer gegebenen Buchstabenfolge und einer Reihe von Wörtern eine Reihenfolge der Wörter aus, damit sie in der Zeichenfolge gefunden werden können, indem Sie nicht benötigte Buchstaben löschen. Wörter können im Wortsatz mehrmals vorkommen. Die Eingabezeichenfolge und alle Wörter bestehen jeweils aus 1 bis 1000 Kleinbuchstaben. Die zu löschenden Buchstaben können innerhalb von Wörtern oder zwischen Wörtern vorkommen.
Ihr Programm oder Ihre Funktion kann die Buchstabenfolge und Wörter als Listen, Zeichenfolgen oder von STDIN akzeptieren und muss alle Wörter in der richtigen Reihenfolge als Listen- oder Zeichenfolgenausgabe ausgeben. Wenn es mehr als eine richtige Lösung gibt, geben Sie nur eine davon aus. Wenn es keine mögliche richtige Lösung gibt, geben Sie eine leere Liste oder eine leere Zeichenfolge aus.
Beispiele:
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)
Das ist Code Golf. Die niedrigste Anzahl von Bytes gewinnt.
Bearbeiten: Erklärt, dass zusätzliche Zeichen in Wörtern enthalten sein können.
ccvor, bbaber die Teilzeichenfolgen bbund werden ccnur einmal bbangezeigt, und die Teilzeichenfolge wird zuerst angezeigt.
ccbcbTeil des Strings geben wir die ccdann-Ausgabe aus, bbnachdem wir die Mitte fallen gelassen haben c.