Digamos que temos um conjunto específico de funções em strings. Essas funções são como preencher os espaços em branco ou madlibs, exceto que eles apenas recebem uma entrada e a usam para preencher todos os espaços em branco. Por exemplo, podemos ter uma função que se parece com
I went to the ____ store and bought ____ today.
Se aplicássemos essa função à string, cheese
o resultado seria:
I went to the cheese store and bought cheese today.
Podemos representar essas funções como uma lista não vazia de cadeias, onde os espaços em branco são simplesmente as lacunas entre as cadeias. Por exemplo, nossa função acima seria:
["I went to the ", " store and bought ", " today."]
Com essa representação, há apenas uma representação para cada função desse tipo e apenas uma função para cada representação.
Uma coisa realmente interessante é que o conjunto de tais funções é fechado sob composição. Ou seja, a composição de duas de nossas funções é sempre outra dessas funções. Por exemplo, se eu compor nossa função acima com
["blue ", ""]
(a função que antecede blue
a entrada) Recebemos a função:
["I went to the blue ", " store and bought blue ", " today."]
Estes podem ficar um pouco mais complexos. Por exemplo, se compormos a primeira função com
["big ", " and ", ""]
O resultado é
["I went to the big ", " and ", " store and bought big ", "and", " today."]
Tarefa
Sua tarefa é executar duas funções, como descritas como listas de cadeias não vazias, e produzir sua composição como uma lista de cadeias não vazias.
Para o objetivo desse desafio, uma lista pode ser qualquer contêiner ordenado que permita duplicatas e uma sequência pode ser do tipo nativo, uma lista de caracteres ou uma lista de números inteiros.
Esse é o código do golfe - as respostas serão pontuadas em bytes, com menos bytes sendo melhores.
Casos de teste
["","xy"] ["ab",""] -> ["ab","xy"]
["x","y","z"] ["a","b"] -> ["xa","bya","bz"]
["xy"] ["ab"] -> ["xy"]
["","",""] ["a",""] -> ["a","a",""]
["x",""] ["","",""] -> ["x","",""]
["x","y","z"] ["a","b","c"] -> ["xa","b","cya","b","cz"]
["x","x","x"] ["a"] -> ["xaxax"]
["w","x","y","z"] ["ab","cd","e"] -> ["wab","cd","exab","cd","eyab","cd","ez"]