Inspirado en esta publicación . Para aquellos que marcan esta pregunta como un duplicado, les insto a que realmente lean la pregunta para ver que la mía es una modificación de la vinculada. El que está vinculado no solicita una entrada y solo imprime el alfabeto en diagonal.
El reto
Dada una entrada entre 1-26 inclusive, imprima el alfabeto en diagonal, pero comience a imprimir verticalmente en el índice de la entrada dada.
Ejemplos
Dada la entrada:
16
Su programa debería generar:
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
Salida:
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
Salida:
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
Salida:
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
Tanteo
Este es el código de golf , por lo que gana la respuesta más corta en cada idioma.
¡Buena suerte!
Respuestas:
Carbón de leña , 9 bytes
Pruébalo en línea!
Cómo funciona
Esta solución ya no funciona en la versión actual de Charcoal (probablemente debido a una corrección de errores), pero el problema se resuelve con 10 bytes
↘✂β⁰N↓✂βIθ
.fuente
Iθ
lugar deη
).…βN
lugar de✂β⁰N
.05AB1E , 11 bytes
La primera vez que intento 05AB1E, así que estoy abierto a consejos.
Pruébalo en línea!
Si se permite una entrada indexada desde cero desde
0
hasta25
, esto puede ser de 10 bytes omitiendo<
.fuente
JavaScript (ES2017),
73727166 bytesAhorré algunos bytes gracias a @JustinMariner
fuente
10
despuész
al final debido a tener++x
antesx.toString()
. Bugfixed y golfed a 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 gracias a Rod
-1 byte más gracias al Sr. Xcoder
fuente
input
se llamaría cada vez que elfor
ciclo se repita, aunque solo haya una línea de entrada.Ruby,
514643 bytesDevuelve una lista de cadenas.
Parece que los chicos de Python estaban haciendo algo con sus subíndices. -5 bytes inspirándose en la mejora del Sr. Xcoder de la solución de ppperry.
Solución anterior con
rjust
(51 bytes):fuente
Python 2 ,
625057 bytesPruébalo en línea!
Roba mucho de esta respuesta de Dennis.
fuente
R,
9989 bytes@MickeyT guardó 10 bytes
función
manifestación
fuente
ifelse
intentomin
.print.noquote
se puede reemplazar concat
un'\n'
en la pasta. El\n
puede ser un retorno de carro recto. Las llaves para el cuerpo de la función se pueden soltar.write
lugar decat
ypaste
:write(c(rep(" ",min(x,i)),letters[i]),"",26,,"")
Retina ,
7268 bytesPruébalo en línea! La salida incluye espacios en blanco al final. Ahorre 1 byte eliminando el espacio antes de
$
si se permite la indexación cero. Editar: Guardado 4 bytes usando el generador de alfabeto de @ MartinEnder. Explicación:Inserta el alfabeto.
Diagonalízalo.
Convierta la entrada a unario como espacios.
Recorte líneas demasiado largas para que ninguna línea sea más larga que la línea en blanco al final.
fuente
Mathematica, 103 bytes
fuente
Pyth ,
211715 bytesHecho en un teléfono con 3% de batería.
Explicación:
Pruébalo en línea!
fuente
Jalea , 11 bytes
Pruébalo en línea!
fuente
Lisp común, 84 bytes
Pruébalo en línea!
fuente
Python , 52 bytes
Muy sorprendido, nadie notó que el enfoque obvio también era tan corto como los demás.
Pruébalo en línea!
Python , 53 bytes
Pruébalo en línea!
fuente
Haskell,
5854 bytesPruébalo en línea!
Cómo funciona
Editar: @Lynn guardó 4 bytes. ¡Gracias!
fuente
['`'..]!!m
.Java (OpenJDK 8) , 69 bytes
Pruébalo en línea!
fuente
Gaia , 12 bytes
Pruébalo en línea!
Explicación
fuente
JavaScript (Node.js) , 72 bytes
Devuelve una lista de cadenas.
Pruébalo en línea!
fuente
.padStart
padEnd
lugar derepeat
.Mathematica, 67 bytes
Devuelve una
SparseArray
de cadenas. Para visualizar, anexarGrid@
al frente.Pruébalo en Wolfram Sandbox
Uso
fuente
Python 2 , 52 bytes
Pruébalo en línea!
Supongo que una lista de cadenas está bien ...
Lo más corto que pude obtener con recursividad:
fuente
SOGL V0.12 , 12 bytes
Pruébalo aquí!
fuente
Python 3 , 52 bytes
Pruébalo en línea!
fuente
C (gcc) , 50 bytes
Pruébalo en línea!
fuente
Protón , 40 bytes
Asumiendo que una lista de cadenas está bien.
Pruébalo en línea!
Protón , 49 bytes
Como ASCII-art en su lugar:
Pruébalo en línea!
fuente
C # (.NET Core) , 66 + 18 bytes
El recuento de bytes también incluye
Pruébalo en línea!
Esto devuelve una colección de cadenas, una para cada línea. Si no está permitido, la respuesta aumentará en 17 bytes para
string.Concat()
y\n
dentro de la cadenaExplicación:
fuente
MATL, 14 bytes
Pruébalo en MATL Online
Explicación
fuente
Pyth , 12 bytes
Pruébalo aquí!
Si se permiten listas de cadenas, esto se puede acortar a 11 bytes :
Pyth , 12 bytes
Pruébalo aquí!
Pyth , 14 bytes
Pruébalo aquí
Si se permiten listas de cadenas, esto se puede acortar a 13 bytes :
¿Cómo funcionan estos?
A diferencia de la mayoría de las otras respuestas, este mapa / bucles sobre el alfabeto en minúsculas en las 3 soluciones.
Explicación # 1
Explicación # 2
Explicación # 3
fuente
Haskell, 60 bytes
Esta es una función que devuelve la salida como una cadena.
Pruébalo en línea.
fuente
Japt ,
1613 bytesGuardado 3 bytes gracias a @Oliver
¡Pruébalo en línea!
fuente
q / kdb +,
3331 bytesSolución:
Ejemplo:
Explicación:
Cree una lista de espacios (26) hasta la longitud del mínimo de la entrada y el rango de
0..25
), únase con cada letra del alfabeto, imprima en stdout.Notas:
fuente
Java 1.8 (sin Lambda), 98 bytes
La lógica es directa. No proporciona validación de datos de entrada, ¡muy mal!
fuente
for(;c++<26;s+=c<i?" ":"")System.out.println(s+(char)o++);
También, puede escribir solo una función o una lambda en lugar de un programa completo.a[0]
refiere? Creo que los fragmentos no son justos si no se compilan; El desafío es igual de interesante con un lenguaje rico en constructos.void f(int i){...}
(no necesita estática) o eni->{...}
lugar de todo su programa. Ver todos los consejos de Java . Vea mi respuesta para este mismo desafío , como ejemplo. Diviértete en el sitio! :-)