(Não, nem isso nem nenhum deles )
Dada uma sequência e uma lista de sequências, preencha todos os espaços em branco na sequência de entrada com as sequências correspondentes.
Entrada / Saída
A sequência de entrada contém apenas caracteres alfabéticos, espaços e sublinhados. Não é vazio e não começa com um sublinhado. Em outras palavras, a sequência de entrada corresponde ao regex^[a-z A-Z]([a-z A-Z_]*[a-z A-Z])?$
Cada sequência na lista de entrada não é vazia e contém apenas caracteres alfanuméricos e espaços. Em outras palavras, eles correspondem ao regex ^[a-z A-Z]+$
.
Um espaço em branco é uma sequência contígua de sublinhados ( _
) que não é precedida nem prosseguida por um sublinhado.
A cadeia de entrada contém n
espaços em branco para algum número inteiro positivo n
e a lista de cadeias contém exatamente n
cadeias.
A saída é obtida substituindo cada k
-ésimo espaço em branco na string de entrada pela k
-th string na lista de entradas de strings.
Exemplo
Dada uma string de entrada "I like _____ because _______ _____ing"
e uma lista de strings ["ice cream", "it is", "satisfy"]
, podemos encontrar a saída da seguinte maneira:
- O primeiro espaço em branco vem logo depois
"like "
. Nós preenchemos isso com"ice cream"
para obter"I like ice cream because ______ _____ing"
. - O segundo espaço em branco vem logo depois
"because "
. Nós preenchemos isso com"it is"
para obter"I like ice cream because it is _____ing"
. - O terceiro espaço em branco vem logo depois
"is "
. Nós preenchemos isso com"satisfy"
para obter"I like ice cream because it is satisfying"
.
Nós produzimos a string final "I like ice cream because it is satisfying"
.
Casos de teste
input string, input list => output
"Things _____ for those who ____ of how things work out _ Wooden",["work out best","make the best","John"] => "Things work out best for those who make the best of how things work out John Wooden"
"I like _____ because _______ _____ing",["ice cream","it is","satisfy"] => "I like ice cream because it is satisfying"
"If you are ___ willing to risk _____ you will ha_o settle for the ordi_____Jim ______n",["not","the usual","ve t","nary ","Roh"] => "If you are not willing to risk the usual you will have to settle for the ordinary Jim Rohn"
"S____ is walking from ____ to ____ with n_oss of ___ W_____ Churchill",["uccess","failure","failure","o l","enthusiasm","inston"] => "Success is walking from failure to failure with no loss of enthusiasm Winston Churchill"
"If_everyone_is_thinking ____ ____ somebody_isnt_thinking G____e P____n",[" "," "," ","alike","then"," "," ","eorg","atto"] => "If everyone is thinking alike then somebody isnt thinking George Patton"
"Pe_________e __say ____motivation does__ last Well___her doe_ bathing____thats why we rec____nd it daily _ __________lar",["opl","often ","that ","nt"," neit","s"," ","omme","Zig","Zig"] => "People often say that motivation doesnt last Well neither does bathing thats why we recommend it daily Zig Ziglar"
fonte
Respostas:
Convexo , 5 bytes
Experimente online!
Convex é uma linguagem baseada em CJam, e esta resposta é quase a mesma que a minha resposta CJam, exceto a
l~
que é desnecessária aqui, pois o Convex faz avaliação automática de argumentos no início do programa.Explicação:
fonte
Japonês , 8 bytes
Teste online!
Sinto que perdi algumas capturas ocultas nas regras, porque isso é extremamente simples: "substitua cada execução de sublinhados na string pelo próximo item da matriz".
fonte
JavaScript, 35 bytes
Experimente online
fonte
a=>b=>String.raw({raw:a.split(/_+/)},...b)
Próton , 42 bytes
Experimente online!
Importações estúpidas ...
A mesma coisa em python:
Python 3 , 53 bytes
Experimente online!
fonte
MATL , 9 bytes
Experimente online!
Explicação
fonte
CJam , 7 bytes
Experimente online!
-1 graças a um truque inteligente de Martin Ender .
Explicação:
fonte
.\
em vez de\]z
.\
é um operador binário. :)[1 2 3]:_
-> da[1 1 2 2 3 3]
mesma forma para.
...Geléia ,
87 bytesExperimente online! Editar: salvou 1 byte graças a @Erik the Outgolfer. Explicação:
fonte
Perl 5 , 25 + 1 (-p) = 26 bytes
Experimente online!
fonte
<>
para negar oeval
eshift
: Experimente online! . Tem que haver uma maneira de evitar a substituição das novas linhas ...sub{shift=~s|_+|shift|egr}
. Se você reverter os argumentos, poderá usarpop
e reduzi- lo para 22 bytes .Pitão , 10 bytes
Experimente aqui!
Como funciona?
fonte
RProgN 2 , 11 bytes
Pega uma string e uma pilha de strings no topo da pilha.
O primeiro elemento (superior) de uma pilha é para a direita, portanto, a entrada é da direita para a esquerda.
Explicado
Experimente online!
fonte
Java 8, 57 bytes
Quando li o desafio, pensei que deveríamos fazer uma sentença gramaticalmente correta com as palavras em ordem aleatória, mas apenas substituir linhas por cada palavra seqüencial é mais fácil. ;)
Explicação:
Experimente aqui.
fonte
05AB1E , 12 bytes
Experimente online!
Explicação
fonte
C # (.NET Core) ,
9796 + 18 bytesGuardado 1 byte graças a Kevin Cruijssen !
Os 18 bytes são para uso
System.Linq
.Experimente online!
fonte
(s,l)=>
paras=>l=>
salvar um byte. Experimente online!Ruby , 28 + 1 = 29 bytes
Usos
-p
A primeira linha é a string de formato, o restante das linhas é a matriz.
Experimente online!
fonte
Python 2 , 61 bytes
Experimente online!
Droga.
Python 2 , 63 bytes
Experimente online!
fonte
re.sub
uma funçãoEmpilhados , 21 bytes
Experimente online!
Substitui todas as execuções de
_
comy shift
. Nada original, como parece.fonte
SOGL V0.12 , 7 bytes
Experimente aqui!
Explicação:
fonte
Python 2 , 49 bytes
Experimente online!
A entrada da lista é tomada como uma tupla. Permitir listas reais como entrada adicionaria outros sete bytes, pois seria necessária uma conversão (
tuple(...)
).fonte