Dado um número de entrada n
de 1
para 26
(ou 0
para 25
), imprima o alfabeto lendo da esquerda para a direita até e inclusive a letra correspondente, com a=1, b=2, c=3, ...
. A torção é que as letras também devem ser repetidas verticalmente, correspondendo à sua posição no alfabeto. Os números ímpares (quando 1
indexados) devem ser equilibrados na linha horizontal, enquanto os números pares devem alternar entre favorecer a parte superior ou inferior (você pode escolher qual direção seguir primeiro). Se você estiver indexando 0, troque ímpar / par na frase anterior.
Redigido de outra maneira - se o valor alfabético de uma letra ?
for #
, deve haver #
cópias dessa letra na saída, todas elas na #
quinta coluna. Essas letras devem ser equilibradas acima e abaixo da linha horizontal que possui o a
. Se as letras não puderem ser equilibradas uniformemente, alterne com a letra "extra" acima e abaixo dessa linha.
Aqui estão as seis primeiras saídas (n = 1,2,3,4,5,6
indexadas em 1, escolhendo alternar primeiro para a parte inferior), separadas por novas linhas, para que você possa ver o padrão. Comentários explicando o padrão começam com #
.
a # On a line by itself
ab
b # The "extra" letter is below the horizontal
c
abc # The 'c' splits evenly
bc
d # Because the 'b' was below, the extra 'd' must be above
cd
abcd
bcd
de
cde
abcde # The 'e' balances
bcde
e
def
cdef
abcdef
bcdef
ef
f # Since the 'd' was above, the extra 'f' must be below
(pule alguns para n=26
)
xyz
wxyz
tuvwxyz
stuvwxyz
pqrstuvwxyz
opqrstuvwxyz
lmnopqrstuvwxyz
klmnopqrstuvwxyz
hijklmnopqrstuvwxyz
ghijklmnopqrstuvwxyz
defghijklmnopqrstuvwxyz
cdefghijklmnopqrstuvwxyz
abcdefghijklmnopqrstuvwxyz
bcdefghijklmnopqrstuvwxyz
efghijklmnopqrstuvwxyz
fghijklmnopqrstuvwxyz
ijklmnopqrstuvwxyz
jklmnopqrstuvwxyz
mnopqrstuvwxyz
nopqrstuvwxyz
qrstuvwxyz
rstuvwxyz
uvwxyz
vwxyz
yz
z
Regras
- Você pode optar por imprimir em maiúsculas ou minúsculas, mas deve ser consistente.
- A saída não pode ter espaços em branco externos, exceto uma nova linha à direita opcional.
- Um programa completo ou uma função são aceitáveis.
- O número de entrada pode ser obtido através de qualquer formato adequado .
- As brechas padrão são proibidas.
- Isso é código-golfe, portanto todas as regras usuais de golfe se aplicam e o código mais curto (em bytes) vence.
-
para produzir as linhas na ordem inversa, o que eu acredito que é permitido?x*-(x&2)
funciona.Pitão , 26 bytes
Uma pontuação perfeita para um desafio sobre o alfabeto.
Experimente online!
fonte
Gelatina , 25 bytes
Experimente online! ou verifique todos os casos de teste .
fonte
JavaScript (ES6),
127126 bytesUsa o truque de classificação de @ Lynn. Escrever o alfabeto inteiro era dois bytes mais barato que calculá-lo. Edit: Salvo 1 byte graças a @ETHproductions, porque esqueci de observar que,
\n
na verdade, representa o caractere literal de nova linha. (Não gosto de inserir novas linhas literais na minha resposta quando a linha é tão longa.)fonte
btoa`...`
where...
é substituído pelo resultado deatob`abcdefghijklmnopqrstuvwxyzz`
. (Além disso, você pode substituir\n
por uma nova linha literal).