Su tarea es aceptar como entrada dos "Arte ASCII" y alinear cada obra de arte una al lado de la otra horizontalmente.
Por ejemplo, digamos que tiene dos cadenas, "abc\ndef"
y "123\n456"
. Necesitas alinearlos horizontalmente para producir la cadena "abc123\ndef456
". Lo llamo" alinear horizontalmente "porque mientras las entradas, cuando se imprimen, se ven así:
abc
def
y:
123
456
La salida, cuando se imprima, se verá así:
abc123
def456
Tenga en cuenta cómo se coloca una entrada junto a la otra.
Entrada
- La entrada será cadenas y puede ser como dos argumentos separados, o como una secuencia de cadenas.
- Los personajes en las artes tendrán códigos decimales en el rango de 32-126 (inclusive).
- Está bien admitir un número arbitrario de artes para alinear en lugar de solo dos (pero obviamente debe admitir al menos dos).
- Puede suponer que cada arte tendrá las mismas dimensiones y que contendrán al menos una línea.
Debes ser capaz de admitir al menos 100x100 artes de personajes.
Para alinearse con las convenciones del sitio, el orden de los argumentos no importa. No importa qué arte esté a la izquierda o a la derecha.
Salida
La salida será el arte alineado como se mencionó anteriormente, ya sea devuelto o enviado a la salida estándar.
Cualquier espacio en blanco al final en opcional.
No debe haber un separador visual entre las artes alineadas.
Las artes de entrada y salida deben ser \n
o \r
cadenas delimitadas. Sería demasiado trivial permitir matrices 2D.
Las presentaciones pueden ser funciones o programas completos.
Casos de prueba:
"abc\ndef", "123\n456" -> "abc123\ndef456".
"qwertyuiop\n asdfghjkl", "Some other\nTextFiller" -> "qwertyuiopSome other\n asdfghjklTextFiller"
" * \n *** \n*****\n *** \n * \n", " + \n + \n+++++\n + \n + \n" -> " * + \n *** + \n*****+++++\n *** + \n * + \n"
"|"
o" "
?\r
lugar de\n
?Respuestas:
Lienzo , 1 byte
Pruébalo aquí!
fuente
Haskell , 37 bytes
Pruébalo en línea!
IO como listas de líneas simplemente sería
zipWith(++)
. :PAGfuente
Python 2 , 59 bytes
Pruébalo en línea!
fuente
05AB1E , 6 bytes
Pruébalo en línea!
Explicación
fuente
Jalea , 4 bytes
Pruébalo en línea!
fuente
Perl 5
-0F
, 28 bytesIncluye
+2
para el\n
argumento de-F
(es "código", por lo que debe contar)Dé entradas directamente una tras otra en STDIN.
Pruébalo en línea!
fuente
Bash + coreutils, 14
La entrada se proporciona como dos nombres de archivo como parámetros de línea de comandos.
Pruébalo en línea .
fuente
paste -d "" $@
-d ""
intentarlo-d""
, lo que por supuesto no es diferente a-d
Perl 6 , 27 bytes
Pruébalo en línea!
Trabaja con un número arbitrario de artes. IO como lista de listas sería justo
&[Z~]
.fuente
APL (Dyalog Unicode) , SBCS de 9 bytes
Programa completo Solicitudes (STDIN) para cualquier lista de longitud de
\r
cadenas delimitadas. Las cadenas pueden ser desiguales y de diferentes anchos siempre que tengan el mismo número de líneas. Imprime (STDOUT) resultante ASCII art.Pruébalo en línea!
⎕
solicitud de entrada evaluada⎕FMT¨
formato (evaluar todos los caracteres de control y devolver la matriz de caracteres) cada uno,/
combinarlos horizontalmente (reducción de la catenificación)⊃
revelar (porque la reducción redujo el rango de 1 a 0)fuente
Java 8,
1008478 bytesSale con un
ArrayIndexOutOfBoundsException
STDERR después de haber impreso el resultado en STDOUT, que está permitido .-6 bytes gracias a @ OlivierGrégoire .
Explicación:
Pruébalo en línea.
fuente
a->b->{for(int i=0;;)System.out.println(a.split("\n")[i]+b.split("\n")[i++]);}
78 bytes. No se dice nada acerca de no tener ningún efecto secundario adicional. Entonces podríamos simplemente contar hasta que ocurra una excepción.Ruby , 48 bytes
Pruébalo en línea!
Una lambda que toma dos hilos y devuelve un hilo. Establecer el
split
delimitador predeterminado en nueva línea con$;=$/;
no guarda ningún byte, pero hace que el resto se vea un poco mejor.Ruby , 49 bytes (arbitrariamente muchas cadenas)
Pruébalo en línea!
Solo por diversión. Resulta que podemos aceptar una serie de cadenas a un costo adicional de solo 1 byte.
fuente
JavaScript (ES6), 51 bytes
fuente
Maravilla , 21 bytes
Ejemplo de uso:
#n
se usa en lugar de\n
denotar nuevas líneas.Explicación
Versión detallada:
Dividir cada cadena en la matriz de entrada a lo largo de nuevas líneas, comprimir con concatenación de cadena y generar cada elemento.
fuente
Kotlin , 73 bytes
Pruébalo en línea!
fuente
Añadir ++ , 24 bytes
Pruébalo en línea!
fuente
C, 96 bytes
Pruébalo en línea!
fuente
JavaScript (ES6), 52 bytes
Toma entrada en la sintaxis de curry
(a)(b)
.Pruébalo en línea!
fuente
Julia 0.6 , 41 bytes
Pruébalo en línea!
fuente
PowerShell ,
5149 bytesPruébalo en línea!
Toma la entrada como cadenas literales con nuevas líneas. También podría usar
`n
(el delimitador de nueva línea en PowerShell, no\n
) en su lugar.Nosotros primero
-split
la cadena de entrada izquierda en las nuevas líneas, que crea una matriz, y la recorremos|%{...}
. En cada iteración, la cadena se concatena con la cadena de entrada correcta nuevamente dividida en nuevas líneas, indexada e incrementada.Los que quedan en la tubería y lo implícito
Write-Output
al finalizar nos da salida como una serie de cadenas, que se imprimen con nuevas líneas entre ellas.fuente
APL (Dyalog Unicode) , 22 bytes ( SBCS de Adám )
Pruébalo en línea!
fuente
Rojo , 78 bytes
Pruébalo en línea!
fuente
Japt
-R
,87 bytesIntentalo
Explicación
Alternativa
Intentalo
fuente
Bash , 92 bytes
Pruébalo en línea!
Sin golf:
Ejemplos:
También tengo uno más corto pero falla si la segunda
read
declaración devuelve un valor distinto de cero.Bash , 55 bytes
Nota:
<&3
no parece funcionar en tio.runEste usa descriptores de archivo (
1
y3
) en lugar de argumentos:fuente
Carbón de leña , 8 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. Explicación:
Agregue 2 bytes para aceptar múltiples entradas:
Pruébalo en línea! El enlace es a la versión detallada del código. Explicación:
Agregue 4 bytes para aceptar la entrada sin relleno:
Pruébalo en línea! El enlace es a la versión detallada del código. Explicación:
fuente
JavaScript (Node.js) , 79 bytes
Pruébalo en línea!
Admite un número arbitrario de artes ASCII que se unen en lugar de solo 2 (como en las 2 respuestas anteriores de JS).
fuente
Limpio , 61 bytes
Pruébalo en línea!
fuente
Swift 4 , 119 bytes
Explicación
Pruébalo en línea!
fuente