Continuando meu Foi apenas um desafio de bug :
Entrada:
Uma sequência que consiste em caracteres ASCII imprimíveis sem espaços em branco nem novas linhas.
Resultado:
Primeiro, transforme a entrada em um palíndromo revertendo a entrada e adicionando-a antes de si mesma, excluindo o caractere do meio (ou seja, com uma entrada 1234567890
, ela se tornará0987654321234567890
).
E, em seguida, imprima este texto:
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0987654321234567890
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
(Do meio para fora em ambas as direções, cada caractere é separado por mais um espaço que a linha anterior.)
Regras do desafio:
- Você precisa imprimir duas vezes o comprimento da entrada, menos três linhas. Então, com a entrada
1234567890
, a saída exibida acima é de 17 linhas (comprimento 10 * 2 - 3). - A entrada conterá apenas ASCII imprimível (excluindo espaço, tabulação e nova linha).
- Os espaços à direita são opcionais.
- Uma única linha nova à direita é opcional.
- Espaços à esquerda (adicionais) ou novas linhas à esquerda não são permitidos.
- Você pode assumir que a entrada sempre terá pelo menos quatro caracteres.
- Ao contrário do que foi apenas um desafio, os formatos de entrada e saída são flexíveis. Portanto, você pode gerar o resultado como uma matriz de strings, uma lista de strings etc.
Regras gerais:
- Isso é código-golfe , então a resposta mais curta em bytes vence.
Não permita que idiomas com código de golfe o desencorajem a postar respostas com idiomas que não sejam codegolf. Tente encontrar uma resposta o mais curta possível para 'qualquer' linguagem de programação. - As regras padrão se aplicam à sua resposta, para que você possa usar STDIN / STDOUT, funções / método com os parâmetros adequados e programas completos do tipo retorno. Sua chamada.
- Lacunas padrão são proibidas.
- Se possível, adicione um link com um teste para o seu código.
- Além disso, adicione uma explicação, se necessário.
Casos de teste:
Input: 1234567890
Output:
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0987654321234567890
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
0 9 8 7 6 5 4 3 2 1 2 3 4 5 6 7 8 9 0
Input: ABCD
Output:
D C B A B C D
D C B A B C D
DCBABCD
D C B A B C D
D C B A B C D
Input: =>)}]
Output:
] } ) > = > ) } ]
] } ) > = > ) } ]
] } ) > = > ) } ]
]})>=>)}]
] } ) > = > ) } ]
] } ) > = > ) } ]
] } ) > = > ) } ]
Input: XXxxXX
Output:
X X x x X X X x x X X
X X x x X X X x x X X
X X x x X X X x x X X
X X x x X X X x x X X
XXxxXXXxxXX
X X x x X X X x x X X
X X x x X X X x x X X
X X x x X X X x x X X
X X x x X X X x x X X
Respostas:
Carvão , 14 bytes
Experimente online!
AST:
fonte
Japt ,
2221 bytesTeste online!
Explicação
Os primeiros 8 bytes geram o quadrante inferior direito do padrão:
Neste ponto, temos uma matriz de por exemplo
["ABCD", "A B C D", "A B C D"]
. Infelizmente, são necessários 13 bytes para formar o quadrado:fonte
05AB1E , 17 bytes
Experimente online!
-1 graças a kalsowerus .
fonte
.c.∊
porû.c
û
... obrigado!JavaScript (ES6) ,
159136129127 bytesExperimente online! Explicação abaixo
Primeira entrada no codegolf, peço desculpas antecipadamente por quaisquer erros óbvios.
Agradecimentos a Justin Mariner por salvar 23 bytes! Agradecemos a Craig Ayre por salvar 11 bytes e pelo relatório de erros.
fonte
x
em -2 em vez de -1 e alterarx<=l
para++x<=l
para que você possa removerx++
e salvar um byte?lines
está envolvido com o espaçamento e, portanto, acaba custando mais bytes para que tudo funcione novamente. Mas tenho quase certeza de que existe uma maneira melhor de organizar o código e adicionar sua sugestão.SOGL V0.12 ,
2218 bytesExperimente aqui!
Explicação:
fonte
╬-
comando palindromize em quatro direções é? Eu estava aqui desejando que Japt tivesse algo assim ...: P╬
é muitas coisas╬-
. Mas, graças, não consegui encontrar essa página por algum motivoF
para∑
se for necessário.Python 3 ,
149 14195 bytesExperimente online!
Agradecemos a @KevinCruijssen e @ETHproductions por salvar alguns bytes
Agradecimentos especiais a @notjagan por salvar 46 bytes!
fonte
l=len(s);
paral=len(s)-1;
e depois alterar todos os valores que envolveml
(ou seja,l-1
->l
;-l+2
->-l+1
; etc.) é 8 bytes mais curto. Experimente aqui.-l+2
->2-l
:)center
vez dofor
loop!PHP,
145131 bytesDemorou um pouco para pensar nesse byte adicional; Mas valeu a pena.
imprime uma nova linha principal. Execute como pipe
-nR
ou experimente online .demolir
solução alternativa , mesmo comprimento:
fonte
APL (Dyalog) , 37 bytes
Requer
⎕IO←0
qual é o padrão em muitos sistemas.{
…}
Função anônima em que o argumento é representado por ⍵(
…)↑¨¨⊂⍵
Para cada (¨
) um dos seguintes números aceita (↑
) o número de caracteres de cada (¨
) todo o⊂
argumento ( ), preenchendo os espaços conforme necessário:≢w
o número de caracteres no argumentod←
armazene isso em d⍳
que muitos índices (0… d - 1)1↓
solte um (o zero)∊¨
ε nlist (achatar) cada↑
elevar a classificação (converter a lista de listas em uma matriz)(m←
…)
Aplique a seguinte função tácita m , definida como:⊖
o argumento de cabeça para baixo⍪
Em cima de1
uma linha]↓
Caiu de⊢
o argumento⍉
transpor(
…)↓
Drop:2-d
= - ( d - 2), ou seja, d - 2 linhas a partir do fundom
aplicar m⍉
transporExperimente online!
fonte
Java (OpenJDK 8) ,
201196 bytesExperimente online!
É a mesma ideia que usei para o desafio anterior , exceto que a cadeia do gerador agora é um pouco mais longa e com mais casos difíceis de lidar.
fonte
Python 3 ,
134124 bytesExperimente online!
Primeiro post no PPCG depois de um tempo escondido. Procurando sugestões / conselhos!
Obrigado a @LyricLy e a Łukasz Rogalski pelas melhorias!
fonte
f=
bytes, basta fornecer uma função anônima.-len(s)+2
é apenas2-len(s)
, um byte a menos.Haskell,
177163 bytesA função
f
é a função de desafio e retorna uma lista de strings ([String]
), usandounlines
nela deve fornecer a mesma saída visual que os casos de teste (main = putStr $ unlines $ f "test string"
para compilá-la).Experimente online!
-14 bytes graças a @nimi
fonte
k
pode ser definido comok n=[1..n]>>" "
ep
comop=(++)=<<reverse.tail
(você pode até alinhar esta definição).Mathematica, 141 bytes
fonte