(Non, ni ceci ni aucun d'entre eux )
Étant donné une chaîne et une liste de chaînes, remplissez tous les blancs de la chaîne d'entrée avec les chaînes correspondantes.
Entrée sortie
La chaîne d'entrée ne contient que des caractères alphabétiques, des espaces et des traits de soulignement. Il n'est pas vide et ne commence pas par un trait de soulignement. En d'autres termes, la chaîne d'entrée correspond à l'expression régulière^[a-z A-Z]([a-z A-Z_]*[a-z A-Z])?$
Chaque chaîne de la liste d'entrée n'est pas vide et ne contient que des caractères alphanumériques et des espaces. En d'autres termes, ils correspondent à l'expression régulière ^[a-z A-Z]+$
.
Un blanc est une séquence contiguë de traits de soulignement ( _
) qui n'est ni précédée ni précédée d'un trait de soulignement.
La chaîne d'entrée contient des n
espaces pour un entier positif n
, et la liste des chaînes contient exactement des n
chaînes.
La sortie est obtenue en remplaçant chaque k
-ième blanc dans la chaîne d'entrée par la k
-ième chaîne dans la liste d'entrée de chaînes.
Exemple
Étant donné une chaîne d'entrée "I like _____ because _______ _____ing"
et une liste de chaînes ["ice cream", "it is", "satisfy"]
, nous pouvons trouver la sortie comme suit:
- Le premier blanc vient directement après
"like "
. Nous remplissons cela avec"ice cream"
pour obtenir"I like ice cream because ______ _____ing"
. - Le deuxième blanc vient directement après
"because "
. Nous remplissons cela avec"it is"
pour obtenir"I like ice cream because it is _____ing"
. - Le troisième blanc vient juste après
"is "
. Nous remplissons cela avec"satisfy"
pour obtenir"I like ice cream because it is satisfying"
.
Nous sortons la chaîne finale "I like ice cream because it is satisfying"
.
Cas de test
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"
la source
Réponses:
Convexe , 5 octets
Essayez-le en ligne!
Convex est un langage basé sur CJam, et cette réponse est presque la même que ma réponse CJam, à l'exception de celle
l~
qui n'est pas nécessaire ici, car Convex effectue une évaluation automatique des arguments au début du programme.Explication:
la source
Japt , 8 octets
Testez-le en ligne!
Je sens que j'ai raté une capture cachée dans les règles parce que c'est extrêmement simple: "remplacez chaque série de traits de soulignement dans la chaîne par l'élément suivant dans le tableau."
la source
JavaScript, 35 octets
Essayez-le en ligne
la source
a=>b=>String.raw({raw:a.split(/_+/)},...b)
Proton , 42 octets
Essayez-le en ligne!
Importations stupides ...
Même chose en python:
Python 3 , 53 octets
Essayez-le en ligne!
la source
MATL , 9 octets
Essayez-le en ligne!
Explication
la source
CJam , 7 octets
Essayez-le en ligne!
-1 grâce à un astucieux tour de Martin Ender .
Explication:
la source
.\
au lieu de\]z
.\
est un opérateur binaire. :)[1 2 3]:_
-> de[1 1 2 2 3 3]
même pour.
...Gelée ,
87 octetsEssayez-le en ligne! Edit: 1 octet enregistré grâce à @Erik the Outgolfer. Explication:
la source
Perl 5 , 25 + 1 (-p) = 26 octets
Essayez-le en ligne!
la source
<>
pour annuler leeval
etshift
: Essayez-le en ligne! . Il doit y avoir un moyen d'éviter le remplacement des nouvelles lignes ...sub{shift=~s|_+|shift|egr}
. Si vous inversez les arguments, vous pouvez les utiliserpop
et les réduire à 22 octets .Pyth , 10 octets
Essayez-le ici!
Comment ça fonctionne?
la source
RProgN 2 , 11 octets
Prend une chaîne et une pile de chaînes en haut de la pile.
Le premier élément (supérieur) d'une pile est à droite, donc l'entrée est de droite à gauche.
Expliqué
Essayez-le en ligne!
la source
Java 8, 57 octets
Quand j'ai lu le défi, j'ai d'abord pensé que nous devrions faire une phrase grammaticalement correcte avec les mots dans un ordre aléatoire, mais simplement remplacer les lignes par chaque mot séquentiel est plus facile. ;)
Explication:
Essayez-le ici.
la source
05AB1E , 12 octets
Essayez-le en ligne!
Explication
la source
C # (.NET Core) ,
9796 + 18 octets1 octet enregistré grâce à Kevin Cruijssen !
Les 18 octets sont à utiliser
System.Linq
.Essayez-le en ligne!
la source
(s,l)=>
pours=>l=>
enregistrer un octet. Essayez-le en ligne!Ruby , 28 + 1 = 29 octets
Les usages
-p
La première ligne est la chaîne de format, les autres lignes sont le tableau.
Essayez-le en ligne!
la source
Python 2 , 61 octets
Essayez-le en ligne!
Zut.
Python 2 , 63 octets
Essayez-le en ligne!
la source
re.sub
une fonctionEmpilé , 21 octets
Essayez-le en ligne!
Remplace toutes les séries de
_
pary shift
. Rien d'original, semble-t-il.la source
SOGL V0.12 , 7 octets
Essayez-le ici!
Explication:
la source
Python 2 , 49 octets
Essayez-le en ligne!
L'entrée de liste est considérée comme un tuple. Autoriser les listes réelles en entrée ajouterait encore sept octets, car une conversion serait nécessaire (
tuple(...)
).la source