Tarefa
Dado um caractere imprimível sem espaço em branco, faça uma representação quadrada de 3x3 dessa entrada. Por exemplo, se a entrada for #
, a saída será:
###
# #
###
Regras
- O formato de saída é rigoroso, embora uma nova linha à direita seja permitida. Isso significa que o espaço no meio é necessário e também que os dois caracteres de nova linha que separam as três linhas são necessários.
Casos de teste
Entrada: #
Saída:
###
# #
###
Entrada: A
Saída:
AAA
A A
AAA
Entrada: 0
Saída:
000
0 0
000
Pontuação
Este é o código-golf . A resposta mais curta em bytes vence.
Respostas:
Carvão ,
53 bytesExperimente online! Editar: economizou 40% graças a @carusocomputing. Explicação:
fonte
B³S
para enganar a porcaria viva disso.Cenoura , 11 bytes
Experimente online!
O programa está no modo de
#
sinal de intercalação, onde s são substituídos pela entrada.fonte
Python 2 , 32 bytes
Experimente online!
Para
s='a'
: o meios+'\n \n'+s
geraa\n \na
es.join
entrega (negrito s são os que adiciona), porque aceita uma sequência como iterável e, em seguida, é cercada pelos dois caracteres ausentesaa\na a\naa
a
.join
.join
fonte
3*c+c.join('\n \n')+3*c
empata em 32).MATL , 5 bytes
Experimente online!
Explicação
fonte
05AB1E , 8 bytes
Experimente online!
Idéia original usando 30 como um número binário (inacabado, alguém tenta isso em outro idioma):
05AB1E , 12 bytes
Experimente online!
fonte
Python 3.6 , 33 bytes
Experimente online!
fonte
import sys
e depoissys.version
na repl, ele retornará 3.6.1 em vez de 3.5.2. Não faço ideia por que diz 3.5.2 no topo, parece que eles cometeram um erro lá!RPL (Lisp polonês reverso) , 60 caracteres
(Observe que "→" é um caractere único na HP48 e calculadoras compatíveis)
Representaria visualmente o que você deseja, tendo três itens na pilha:
Se você insistir em devolvê-lo como uma sequência, será necessário adicionar os caracteres da nova linha e combinar as seqüências, deixadas como exercício para o próximo testador.
Explicação:
→STR
: Transforma o último objeto da pilha em uma sequência. (Portanto, a entrada pode ser qualquer coisa, por exemplo, um número.)1
4
: Empurre o número1
e4
para a pilha.START [...] NEXT
: Como um loop for, mas sem acesso à variável do contador. Pega dois números da pilha (aqui, apenas pressionamos1
e4
) e executa o código[...]
nos tempos correspondentes (aqui, quatro vezes).DUP
: Duplique a última entrada na pilha." "
: Empurre a string(ou seja, a string com um espaço em branco) para a pilha.
+
: Pegue dois objetos da pilha e devolva-os juntos, para seqüências de caracteres: Concatenated.4
: Empurre o número4
para a pilha.ROLLD
: Pega o último elemento (aqui:4
que acabamos de enviar) da pilha e rola o próximo elemento o mais abaixo possível, conforme especifica o número que acabamos de tirar da pilha.SWAP
: Troca os dois últimos elementos da pilha.2
: Empurre2
para a pilha.PICK
: Pega um elemento (aqui: O2
que acabamos de enviar para a pilha), interpreta como um número n e copia o enésimo elemento da pilha.fonte
JavaScript, 28 bytes
Tente
fonte
c+'\n'+c
forma temporária.Gelatina , 8 bytes
1 byte graças a Erik, o Outgolfer.
Experimente online!
fonte
x4µ©;⁶;®œs3Y
12 bytes porque não conseguia descobrir como evitar que a repetição multiplique todo o meu passo intermediário, mas é legal!K
para fazerj⁶
. Ah, e é rápido`
converter uma díade em mônada usando o mesmo argumento dos dois lados.Java 7,
5655 bytes-1 Obrigado a Leaky Nun por apontar o espaço que eu perdi
Simplesmente substitui os períodos pelo caractere fornecido, para a entrada #:
Experimente online!
fonte
PHP, 32 bytes
Experimente online!
fonte
<?=$a=$argn,"$a$a\n$a $a\n$a$a$a";
(quebra de linha real em vez de \ n, é claro) tem exatamente a mesma contagem de bytes.sed,
2818 bytesExperimente online!
fonte
:
. Fixo.Flacidez cerebral ,
7670 + 1 = 71 bytesRequer a
-c
bandeiraExperimente online!
fonte
(()()()()()){}
por([])[]{}
.Pitão, 7 bytes
Experimente isso online.
Explicação:
fonte
Brain-Flak ,
61, 59 bytesExperimente online!
São 58 bytes de
+1
byte de código para o-c
sinalizador que habilita a entrada e saída ASCII.Explicação:
fonte
C (gcc) ,
4947 bytesEconomizou 2 bytes graças a 2501!
Experimente online! tem uma nova linha à direita
fonte
for(j=11;j;)...
Python 3 , 34 bytes
Experimente online!
fonte
lambda x:x*3+'\n%s '%x+x+'\n'+x*3
Oitava , 36 bytes
Experimente online!
Explicação
Isso cria uma matriz de caracteres 3x3 com o caractere de entrada repetido e define sua quinta entrada na ordem principal da coluna (ou seja, seu centro) como
32
(ASCII para espaço).fonte
Pyke , 5 bytes
Experimente online!
fonte
Ruby ,
2725 bytesEconomizou 2 bytes graças ao Level River St
Experimente online!
fonte
f=...
) e depois chamá-lo com #f.call(...)
"\n"
economizar 1 byte. Melhor ainda,$/
que é uma variável especial definida como nova linha por padrão - economizando 2 bytes.tr
solução. bom trabalhoBrainfuck, 40 bytes
Experimente online! Requer uma implementação que possa acessar à esquerda da posição inicial.
Veja também: Resposta do cérebro de Graviton, que adota uma abordagem diferente (mas é mais longa).
Explicação:
O Brainfuck pode fazer muitos truques legais com seu conjunto de instruções limitado. Infelizmente, esta resposta não usa nenhuma delas, porque é mais barato (em termos de bytes) codificar apenas tudo.
# = caractere de entrada, _ = espaço (ASCII 32), \ n = nova linha (ASCII 10)
Resultados nesta linda caixa (para entrada '+'):
fonte
05AB1E ,
76 bytes-1 byte graças à carusocomputação.
Explicação:
Usa a codificação CP-1252 . Experimente online!
fonte
ж¹ðJû
por 6 bytes.Pitão , 11 bytes
Experimente online!
Explicação:
fonte
> <> ,
2423 bytesExperimente online!
fonte
Swift3, 50 bytes
Isso usa o operador ternário para imprimir seqüências diferentes, dependendo da linha.
Experimente online
fonte
V , 8 bytes
Experimente online!
fonte
<M-h>ollow
comando (não documentado?) Que permite ocultar o interior da sua caixa: Experimente online!C #, 50 bytes
Caso de teste:
fonte
Console
ieSystem.Console..
Vim, 9 pressionamentos de teclas
Assumindo que o char de entrada esteja presente em um buffer, o vim torna isso simples
Provavelmente existem alguns comandos de uso do magic vim aqui (sempre parece haver alguns), portanto sugestões de melhoria são bem-vindas. Apenas um pressionamento de tecla atrás de V!
fonte
Montagem Z80 ou 8080, código de máquina de 21 bytes
Suponha um dispositivo de E / S mapeado para memória:
Não é necessário nenhum intérprete!
Hexdump:
onde o endereço de entrada está em FF00h e o endereço de saída é mapeado em FF01h. Os endereços reais dependerão do hardware real. Obviamente, isso pressupõe que a E / S esteja mapeada na memória. Se for E / S mapeada, levaria vários bytes extras, porque as instruções de E / S Z80 e 8080 têm dois bytes cada. Isso também pressupõe que o dispositivo de saída interpreta 0Ah como uma nova linha e não requer um CR (0Dh) que adicionaria 4 bytes extras ao programa.
fonte
J-uby ,
2220 bytes-2 bytes graças a @Jordan
Explicação
String#tr
é o método de substituição de caracteres do Ruby. Os primeiros&
se liga:tr
a"...\n. .\n..."
, e o segundo se aplica parcialmente'.'
a ele. Efetivamente, isso é->s{"...\n. .\n...".tr('.',s)}
fonte
:tr
tão bem quanto:gsub
aqui?