Враховуючи рядок літер і набір слів, виведіть впорядкування слів, щоб їх можна було знайти в рядку, видаляючи літери, які не потрібні. Слова можуть зустрічатися не раз у наборі слів. Вхідний рядок і всі слова будуть складатися з 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частині рядка ми виводимо ccтоді вихід bbпісля відкидання середини c.