Tarefa
- Pegue a sequência de entrada separada pelo espaço.
- Classifique as palavras em ordem alfabética.
- Imprima-os verticalmente em 3 colunas separadas por espaço (s).
Desafio
- As alturas de todas as três colunas devem ter o peso mais uniforme possível.
- Todas as três colunas devem ficar alinhadas à esquerda.
Isso é código-golfe , então o código mais curto vence!
Exemplo
Se a entrada for:
"cat caterpillar pie frog elephant pizza",
A saída deve ser:
cat elephant pie
caterpillar frog pizza
Cuidado com os casos, se a entrada for:
"a b c d e f g"
Deve ser impresso como:
a c e
b d f
g
# or
a d f
b e g
c
# and not
a d g
b e
c f
Respostas:
Casca ,
2417 bytesExperimente online!
Explicação
Esse foi um desafio surpreendentemente complicado, já que Husk atualmente não possui um mecanismo embutido para dividir uma lista em um determinado número de partes.
fonte
Gelatina , 6 bytes
Experimente online!
fonte
a b c d e f g
caso, e fiz outros testes extensivos porque também tive esse sentimento. Ah, e sua falta vem doG
(Format as G rid.) Embutido.Python 3 , 148 bytes
-6 bytes graças a ovs.
Experimente online!
Trabalhando nisso.Tudo o que tentei faz com que a saída seja desigual ...fonte
Mathematica, 115 bytes
experimentá-lo na caixa de areia wolfram
cole o código a seguir e pressione Shift + Enter
fonte
Perl 5 , 134 + 1 (
-a
) = 135 bytesExperimente online!
fonte
05AB1E , 8 bytes
Experimente online!
fonte
Javascript
181175 bytesfonte
J , 73 bytes
Eu posso explicar essa bagunça mais tarde, se alguém estiver interessado.
Experimente online!
fonte
Carvão ,
6564 bytesExperimente online! Link é a versão detalhada do código. Economize 2 bytes se não precisar lidar com menos de 3 palavras. Provavelmente há uma "avaliação" de classificação que eu deveria estar usando ... Explicação:
Divida a entrada em espaços.
Classifique a matriz.
Faça um loop sobre três fatias aproximadamente iguais da matriz. (
I1
realmente deveria ser¦¹
.)Junte a fatia com novas linhas e imprima-a sem mover o cursor.
Se a fatia não estiver vazia, mova para a direita uma a mais que o comprimento da palavra mais longa na fatia.
fonte
358 bytes de JS compactado:
fonte
GNU sed , 92 + 1 = 93 bytes
+1 bytes para
-r
sinalizador.Ainda não joguei isso, mas acabou sendo muito mais simples do que eu esperava.
Experimente online!
fonte
Shell Bourne, 172 bytes
É mais legível se formatado convencionalmente:
Ao preço da varredura da entrada uma vez por coluna, ela não usa matrizes. Um programa awk mais complexo pode abrir 3 arquivos (um para cada enésima palavra), processando a entrada em uma passagem. Eles poderiam ser concatenados e impressos usando a mesma última linha.
A variável
N
também não é estritamente necessária; pelo preço de 4 bytes, economizamos a varredura da entrada mais 3 vezes.fonte