Sua tarefa é aceitar como entrada dois "ASCII Art" s e alinhar cada obra de arte horizontal uma da outra.
Por exemplo, digamos que você tenha duas cadeias "abc\ndef"
e "123\n456"
. Você precisa alinhá-los horizontalmente para produzir a string "abc123\ndef456
". Estou chamando isso de" alinhar horizontalmente "porque, enquanto as entradas, quando impressas, ficam assim:
abc
def
e:
123
456
A saída, quando impressa, terá a seguinte aparência:
abc123
def456
Observe como uma entrada é colocada ao lado da outra.
Entrada
- A entrada será uma string e pode ser como dois argumentos separados ou como uma sequência de strings.
- Os caracteres nas artes terão códigos decimais no intervalo 32-126 (inclusive).
- Não há problema em apoiar um número arbitrário de artes para alinhar em vez de apenas duas (mas obviamente você deve suportar pelo menos duas).
- Você pode assumir que cada arte terá as mesmas dimensões e que conterá pelo menos uma linha.
Você deve ser capaz de suportar pelo menos 100x100 artes de personagens.
Para alinhar com as convenções no site, a ordem dos argumentos não importa. Não importa qual arte está à esquerda ou à direita.
Saída
A saída será as artes alinhadas, conforme mencionado acima, retornadas ou enviadas para o stdout.
Qualquer espaço em branco à direita em opcional.
Não deve haver separador visual entre as artes alinhadas.
As artes de entrada e saída devem ser \n
ou \r
cadeias delimitadas. Seria excessivamente trivial permitir matrizes 2D.
As submissões podem ser funções ou programas completos.
Casos de teste:
"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"
"|"
ou seja" "
?\r
vez de\n
?Respostas:
Tela , 1 byte
Experimente aqui!
fonte
Haskell , 37 bytes
Experimente online!
IO como listas de linhas seria apenas
zipWith(++)
. : Pfonte
Python 2 , 59 bytes
Experimente online!
fonte
05AB1E , 6 bytes
Experimente online!
Explicação
fonte
Gelatina , 4 bytes
Experimente online!
fonte
Perl 5
-0F
, 28 bytesInclui
+2
o\n
argumento para-F
(é "código", portanto, deve contar)Dê entradas diretamente uma após a outra no STDIN.
Experimente online!
fonte
Bash + coreutils, 14
A entrada é fornecida como dois nomes de arquivo como parâmetros da linha de comando.
Experimente online .
fonte
paste -d "" $@
-d ""
, eu tentei-d""
, o que obviamente não é diferente de-d
Perl 6 , 27 bytes
Experimente online!
Trabalha com número arbitrário de artes. IO como lista de listas seria justo
&[Z~]
.fonte
APL (Dyalog Unicode) , SBCS de 9 bytes
Programa completo. Solicita (STDIN) qualquer lista de comprimento de
\r
cadeias delimitadas. As cadeias podem ser irregulares e de larguras diferentes, desde que tenham o mesmo número de linhas. Imprime (STDOUT) arte ASCII resultante.Experimente online!
⎕
prompt para entrada avaliada⎕FMT¨
formato (avalie todos os caracteres de controle e retorne a matriz de caracteres) cada,/
combiná-los horizontalmente (redução de catenação)⊃
divulgar (porque a redução reduziu a classificação de 1 para 0)fonte
Java 8,
1008478 bytesSai com um
ArrayIndexOutOfBoundsException
para STDERR depois de imprimir o resultado em STDOUT, o que é permitido .-6 bytes graças a @ OlivierGrégoire .
Explicação:
Experimente online.
fonte
a->b->{for(int i=0;;)System.out.println(a.split("\n")[i]+b.split("\n")[i++]);}
78 bytes. Nada é dito sobre não ter nenhum efeito colateral extra. Portanto, poderíamos simplesmente contar até que ocorra uma exceção.Ruby , 48 bytes
Experimente online!
Um lambda pegando duas cordas e retornando uma string. Configurando o
split
delimitador padrão como nova linha com$;=$/;
não salva bytes, mas faz o resto parecer um pouco melhor.Ruby , 49 bytes (arbitrariamente várias strings)
Experimente online!
Apenas por diversão. Acontece que podemos aceitar uma matriz de seqüências de caracteres a um custo adicional de apenas 1 byte.
fonte
JavaScript (ES6), 51 bytes
fonte
Maravilha , 21 bytes
Exemplo de uso:
#n
é usado em vez de\n
indicar novas linhas.Explicação
Versão detalhada:
Divida cada sequência na matriz de entrada ao longo de novas linhas, zip com concatenação de sequência e produza cada item.
fonte
Kotlin , 73 bytes
Experimente online!
fonte
Adicione ++ , 24 bytes
Experimente online!
fonte
C, 96 bytes
Experimente online!
fonte
JavaScript (ES6), 52 bytes
Recebe entrada na sintaxe de currying
(a)(b)
.Experimente online!
fonte
Julia 0.6 , 41 bytes
Experimente online!
fonte
PowerShell ,
5149 bytesExperimente online!
Recebe entrada como cadeias literais com novas linhas. Você também pode usar
`n
(o delimitador de nova linha no PowerShell, não\n
).Primeiro,
-split
a string de entrada esquerda em novas linhas, que cria uma matriz, e percorre essa linha|%{...}
. A cada iteração, concatenamos a string de entrada correta novamente dividida em novas linhas, indexadas e incrementadas.Esses são deixados no pipeline e o implícito
Write-Output
na conclusão nos dá saída como uma matriz de strings, que são impressas com novas linhas entre eles.fonte
APL (Dyalog Unicode) , 22 bytes ( SBCS de Adám )
Experimente online!
fonte
Vermelho , 78 bytes
Experimente online!
fonte
Japonês
-R
,87 bytesTente
Explicação
Alternativo
Tente
fonte
Bash , 92 bytes
Experimente online!
Ungolfed:
Exemplos:
Eu também tenho um menor, mas ele falhará se a segunda
read
instrução retornar um valor diferente de zero.Bash , 55 bytes
Nota:
<&3
parece não funcionar tio.runEste usa descritores de arquivo (
1
e3
) em vez de argumentos:fonte
Carvão , 8 bytes
Experimente online! Link é a versão detalhada do código. Explicação:
Adicione 2 bytes para aceitar várias entradas:
Experimente online! Link é a versão detalhada do código. Explicação:
Adicione 4 bytes para aceitar entrada não preenchida:
Experimente online! Link é a versão detalhada do código. Explicação:
fonte
JavaScript (Node.js) , 79 bytes
Experimente online!
Suporta um número arbitrário de artes ASCII se unindo em vez de apenas 2 (como nas 2 respostas anteriores do JS).
fonte
Limpo , 61 bytes
Experimente online!
fonte
Swift 4 , 119 bytes
Explicação
Experimente online!
fonte