Inspirado por este post . Para aqueles que marcaram essa pergunta como duplicada, peço que você realmente leia a pergunta para ver que a minha é uma modificação da que está vinculada. O link não solicita uma entrada e é apenas para imprimir o alfabeto na diagonal.
O desafio
Dada uma entrada entre 1 e 26, inclusive, imprima o alfabeto na diagonal, mas comece a imprimir verticalmente no índice da entrada fornecida.
Exemplos
Dada a entrada:
16
Seu programa deve gerar:
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Entrada:
4
Saída:
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
v
w
x
y
z
Entrada:
1
Saída:
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Entrada:
26
Saída:
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Pontuação
Isso é código-golfe , então a resposta mais curta em cada idioma vence.
Boa sorte!
Respostas:
Carvão , 9 bytes
Experimente online!
Como funciona
Esta solução não funciona mais na versão atual do Charcoal (provavelmente devido a uma correção de bug), mas o problema foi resolvido por 10 bytes com
↘✂β⁰N↓✂βIθ
.fonte
Iθ
em vez deη
.)…βN
vez de✂β⁰N
.05AB1E , 11 bytes
Primeira vez que experimentei 05AB1E, estou aberto a dicas.
Experimente online!
Se uma entrada indexada a zero de
0
a25
for permitida, pode ser de 10 bytes, omitindo o<
.fonte
JavaScript (ES2017),
73727166 bytesSalvo alguns bytes graças a @JustinMariner
fonte
10
depoisz
no final devido a ter++x
antesx.toString()
. Corrigido o erro e jogava golfe em 68 bytes usandopadStart
: TIOn=>g=(x=26)=>x?f(x-1)+(x+9).toString(36).padStart(x<n?x:n)+'\n':""
Python 2,
61 5857 bytes-3 bytes graças a Rod
-1 byte a mais graças ao Sr. Xcoder
fonte
input
seria chamado toda vez que ofor
loop iterar, mesmo que haja apenas uma linha de entrada.Ruby,
514643 bytesRetorna uma lista de strings.
Parece que os caras do Python estavam envolvidos em algo com seus subscritos. -5 bytes, inspirando-se na melhoria do Sr. Xcoder da solução da ppperry.
Solução anterior com
rjust
(51 bytes):fonte
Python 2 ,
625057 bytesExperimente online!
Rouba fortemente esta resposta de Dennis.
fonte
R,
9989 bytes@MickeyT salvou 10 bytes
função
demonstração
fonte
ifelse
tentemin
.print.noquote
pode ser substituído porcat
um'\n'
na pasta. A\n
pode ser um retorno do carro linear. As chaves do corpo da função podem ser removidas.write
vez decat
epaste
:write(c(rep(" ",min(x,i)),letters[i]),"",26,,"")
Retina ,
7268 bytesExperimente online! A saída inclui espaço em branco à direita. Economize 1 byte excluindo o espaço antes da
$
indexação se zero for permitida. Editar: salvou 4 bytes usando o gerador de alfabeto do @ MartinEnder. Explicação:Insira o alfabeto.
Diagonalize-o.
Converta a entrada em unário como espaços.
Aparar linhas longas, para que nenhuma linha seja maior que a linha em branco no final.
fonte
Mathematica, 103 bytes
fonte
Pitão ,
211715 bytesFeito em um telefone com 3% de bateria.
Explicação:
Experimente online!
fonte
Gelatina , 11 bytes
Experimente online!
fonte
Lisp comum, 84 bytes
Experimente online!
fonte
Python , 52 bytes
Muito surpreso que ninguém notou que a abordagem óbvia também era tão curta quanto as outras.
Experimente online!
Python , 53 bytes
Experimente online!
fonte
Haskell,
5854 bytesExperimente online!
Como funciona
Edit: @Lynn salvou 4 bytes. Obrigado!
fonte
['`'..]!!m
.Java (OpenJDK 8) , 69 bytes
Experimente online!
fonte
Gaia , 12 bytes
Experimente online!
Explicação
fonte
JavaScript (Node.js) , 72 bytes
Retorna uma lista de strings.
Experimente online!
fonte
.padStart
padEnd
vez derepeat
.Mathematica, 67 bytes
Retorna um
SparseArray
de strings. Para visualizar, acrescenteGrid@
na frente.Experimente na Wolfram Sandbox
Uso
fonte
Python 2 , 52 bytes
Experimente online!
Estou assumindo que uma lista de seqüências de caracteres está bem ...
O mais curto que pude obter com recursão:
fonte
SOGL V0.12 , 12 bytes
Experimente aqui!
fonte
Python 3 , 52 bytes
Experimente online!
fonte
C (gcc) , 50 bytes
Experimente online!
fonte
Próton , 40 bytes
Supondo que uma lista de Strings esteja correta.
Experimente online!
Próton , 49 bytes
Como arte ASCII:
Experimente online!
fonte
C # (.NET Core) , 66 + 18 bytes
A contagem de bytes também inclui
Experimente online!
Isso retorna uma coleção de strings, uma para cada linha. Se não for permitido, a resposta aumentará 17 bytes para
string.Concat()
e\n
dentro da stringExplicação:
fonte
MATL, 14 bytes
Experimente no MATL Online
Explicação
fonte
Pitão , 12 bytes
Experimente aqui!
Se listas de Strings forem permitidas, isso poderá ser reduzido para 11 bytes :
Pitão , 12 bytes
Experimente aqui!
Pitão , 14 bytes
Experimente aqui.
Se listas de Strings forem permitidas, isso poderá ser reduzido para 13 bytes :
Como isso funciona?
Ao contrário da maioria das outras respostas, este mapeia / faz um loop sobre o alfabeto minúsculo em todas as 3 soluções.
Explicação nº 1
Explicação nº 2
Explicação nº 3
fonte
Haskell, 60 bytes
Esta é uma função que retorna a saída como uma String.
Experimente online.
fonte
Japonês ,
1613 bytesGuardado 3 bytes graças a @Oliver
Teste online!
fonte
q / kdb +,
3331 bytesSolução:
Exemplo:
Explicação:
Crie uma lista de espaços (26) até o comprimento mínimo da entrada e o intervalo de
0..25
), junte-se a cada letra do alfabeto e imprima em stdout.Notas:
fonte
Java 1.8 (sem Lambda), 98 bytes
A lógica é direta. Não fornece validação de dados de entrada, muito ruim!
fonte
for(;c++<26;s+=c<i?" ":"")System.out.println(s+(char)o++);
Além disso, você pode escrever apenas uma função ou um lambda em vez de um programa completo.a[0]
se refere? Eu acho que trechos não são justos se não compilarem; o desafio é igualmente interessante com uma linguagem rica em construções.void f(int i){...}
(não é necessário estática) ou emi->{...}
vez de todo o seu programa. Veja todas as dicas sobre Java . Veja minha resposta para esse mesmo desafio , como exemplo. Divirta-se no site! :-)