Dada una entrada de dos cadenas con secuencias de guiones bajos que representan las palabras correspondientes, genera las oraciones con los "espacios en blanco" rellenados.
La mejor manera de describir este desafío es con el ejemplo. Aquí hay un ejemplo de entrada:
programming _____________ and code golf
programming puzzles ______ code ____
Y aquí está la salida correspondiente:
programming ___puzzles___ and code golf
programming puzzles _and__ code golf
Para los propósitos de este desafío, una "palabra" se define como una secuencia de una o más letras minúsculas, y un "espacio en blanco" se define como uno o más guiones bajos (la entrada siempre contendrá solo letras minúsculas, espacios y guiones bajos) . Las palabras y los espacios en blanco en las cadenas de entrada están separadas por espacios individuales, y la suma del número de palabras y espacios en blanco en las oraciones siempre será igual.
El objetivo del desafío es llenar todos los espacios en blanco con las palabras correctas , que son las palabras que ocupan el mismo índice en la otra cadena cuando se dividen por espacios.
La palabra debe estar centrada en el espacio en blanco, como se muestra con la palabra "rompecabezas" en el ejemplo anterior; un número igual de guiones bajos permanece a cada lado.
Si la palabra no puede estar exactamente centrada, el guión bajo adicional puede ir a la izquierda o a la derecha (por ejemplo, la palabra "y" en el ejemplo anterior).
Siempre habrá suficientes guiones bajos para que la palabra se ajuste, pero puede haber exactamente tantos como la longitud de la palabra (por ejemplo, la palabra "golf" en el ejemplo anterior).
Nunca habrá un espacio en blanco en la misma posición en ambas cadenas.
La entrada / salida puede ser cualquiera de los siguientes (la entrada / salida no necesariamente tiene que ser a través del mismo método):
cadena simple separada por cualquier carácter que no sea alfabético, un espacio o un guión bajo (por ejemplo, línea nueva o cadena separada por comas)
una matriz / lista / etc. de dos cuerdas
dos argumentos de línea de función / comando (solo entrada)
Como se trata de código golf , el código más corto en bytes ganará.
El ejemplo anterior se puede usar como un caso de prueba. Aquí hay un caso de prueba más grande (la segunda cadena en la salida puede variar ligeramente debido a un comportamiento de centrado diferente):
lorem _____ dolor _____ amet _______________ adipiscing elit mauris dapibus tincidunt _____________________________ accumsan fringilla proin vulputate viverra lorem fermentum dictum
lorem ipsum ______ sit _______ consectetur _______________ elit mauris dapibus tincidunt metus accumsan fringilla proin vulputate viverra lorem ____________________________ dictum
lorem ipsum dolor _sit_ amet __consectetur__ adipiscing elit mauris dapibus tincidunt ____________metus____________ accumsan fringilla proin vulputate viverra lorem fermentum dictum
lorem ipsum dolor_ sit _amet__ consectetur __adipiscing___ elit mauris dapibus tincidunt metus accumsan fringilla proin vulputate viverra lorem _________fermentum__________ dictum