Sin ninguna entrada, su tarea es generar lo siguiente:
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
No visualmente, su tarea es generar cada letra en el alfabeto, con espacios antes de que sea igual a su posición en el alfabeto menos uno.
Si imprime esto, debe aparecer como el anterior. Se permite un espacio en blanco extraño que no afecta la apariencia, así como una nueva línea final. Puede usar todas las minúsculas o todas las mayúsculas.
También puede devolver esto desde una función según las reglas habituales, ya sea como una cadena con nuevas líneas o como una lista de cadenas.
Este es el código de golf , ¡así que la respuesta más corta en bytes gana!
code-golf
kolmogorov-complexity
alphabet
Stephen
fuente
fuente

a<VERTICAL-TAB>b<VERTICAL-TAB>c...? ¿Qué tal si también hay algunos caracteres de retroceso allí? ¿Mientras el resultado visual sea el mismo?4espacios antes delb, no se verá muy diagonal. Si parece que la pendiente es ~-1entonces está bien.Respuestas:
Carbón , 2 bytes
Pruébalo en línea!
¿Cómo?
Exactamente el tipo de desafío para el que se diseñó originalmente el carbón.
fuente
↘"abc ... xyz"qque sería el programa de trabajo más corto. (¡ Pruébelo en línea! )↘``26O;)qDebería funcionar (comience con una marca de retroceso; para cada I en 0 ... 25, haga estallar la I implícita, incremente la marca de retroceso y la salida), pero arroja un error de "pila vacía" por alguna razón. .C, 45 bytes
¡Gracias a @Dennis por guardar 5 bytes!
fuente
ien algún momento. Al menos en TIO,f()solo funciona una vez .f(i){for(i=0;++i<27;printf("%*c\n",i,i+96));}Guarda algunos bytes.f(i){for(i=96;i<122;)printf("%c\v",++i);}para 41 bytes - asegúrese de ejecutar esto en un terminal real (sí, esto está permitido )05AB1E ,
1486 bytes-2 bytes gracias a @Emigna
Cómo funciona
Pruébalo en línea!
Versión original, 14 bytes.
fuente
AvyNú».ƶparece tan perfecto, pero no es :(.Λprobablemente aún no estaba disponible en ese momento, pero26A3Λguarda un byte.₂A3Λhabría sido aún más corto.JavaScript (ES6),
6059 bytesUna función recursiva que devuelve una cadena con una nueva línea final.
fuente
n.toString(++n)+f(n)es un byte más corto quen.toString(36)+f(n+1).f=(n=10,s='')=>n-36?s+n.toString(++n)+'\n'+f(n,s+' '):""por 55."".padEnd(n-10)+n.toString(++n).f=(n=10,s='')=>n-36?s+n.toString(++n)+'\n'+f(n,s+' '):sparece ser permisible.Rubí , 28 bytes.
Pruébalo en línea!
Explicación:
El operador << en una cadena en Ruby hace el truco, como se explica en la Documentación
str << entero → str
str << obj → str
Agregar: concatena el objeto dado a str. Si el objeto es un entero, se considera como un punto de código y se convierte en un carácter antes de la concatenación.
fuente
R,
383736 bytes(El uso de
writeestá inspirado en la respuesta de @ Giuseppe ).fuente
1lugar de""afeitarse otro byte.Vim, 29 bytes
Pruébalo en línea!
↵ significa presionar la tecla de retorno
<Esc> significa presionar la tecla de escape
¿Como funciona esto?
fuente
+explicación que me arrojó por un segundo.␛lugar de<Esc>. Se ve un poco mejor en mi opinión.{lugar deggPython 2 , 36 bytes
Esto aprovecha el espacio en blanco extraño que no afecta a la regla de apariencia .
Pruébalo en línea!
Versión alternativa, 38 bytes.
Esto produce el resultado exacto de la especificación de desafío.
Pruébalo en línea!
fuente
%*cincluso?%*<identifier>toma dos argumentos: la longitud para rellenarlo y la cosa real para sustituir. Algunasprintfimplementaciones tienen características aún más oscuras, como la%1$<identifier>que usé aquí .PHP, 39 bytes
fuente
Pure Bash, 13
Aquí
^Ky^Hson caracteres de control ASCII de tabulación vertical literal y retroceso. Elxxdvolcado de este script es el siguiente: úseloxxd -rpara regenerar el script real:{a..z}es una expansión estándar de llaves para producira b c ... z(separadas por espacios)^Kpestaña vertical baja el cursor una línea hacia la misma posición^Hretroceso mueve el cursor hacia atrás para borrar el espacio del separadorPruébalo en línea .
colytacse usan en el pie de página para que esto se represente correctamente en una ventana del navegador, pero esto es innecesario en un terminal normal.Si los caracteres de control poco ortodoxos anteriores en la salida son demasiado extensos para usted, entonces puede hacer esto:
Bash + utilidades comunes, 24
Aquí
^Ky^Hson caracteres de control ASCII de tabulación vertical literal y retroceso. Elxxdvolcado de este script es el siguiente: úseloxxd -rpara regenerar el script real:Pruébalo en línea . La pestaña vertical y el espacio de retroceso pueden volverse invisibles por su navegador, pero están allí (invisibles en Chrome, visibles en Firefox).
col -xvuelve a representar la entrada de modo que los divertidos caracteres de control se reemplacen con espacios y líneas nuevas para obtener el mismo resultado visualcolgenera líneas en orden inverso.taccorrige eso.fuente
^Kcomo cursor hacia arriba, que es el comportamiento quecoldebe emularse aquí.colmanual llama a un VT un "avance de línea inversa". xterm, gnome-terminal y OSX terminal todos despliegan una línea aunque ...Brain-Flak ,
124, 116, 106 bytesPruébalo en línea!
Explicación:
Esta respuesta abusa del Stack Height Nilad , pero de una manera nueva que nunca he usado antes, de lo que estoy muy orgulloso. Aparte de eso, la respuesta no es demasiado inteligente.
Analizando los caracteres utilizados en este arte ASCII, en realidad hay tres valores que se utilizan con frecuencia:
32 (espacio),
64 (agregue 64 a N para obtener la enésima letra del alfabeto), y
10 (nueva línea)
Además de 26. (número de bucles) Y estos números se introducen en diferentes ubicaciones, por lo que realmente no podemos reutilizar los valores intermedios para hacer que los números grandes sean más pequeños. Y presionar todos estos números es solo la friolera de 86 bytes:
Esto es horrible Así es como lo hacemos más conveniente. El enfoque obvio es empujar un
32a la pila alternativa, lo que hace que nuestro32fragmento se convierta:(<>({})<>)y nuestro64fragmento se convierta(<>({})({})<>). Si combinamos nuestro empuje inicial 32 con nuestro empuje inicial 26 , podemos ahorrar aproximadamente 8 bytes. (mi primer golf)Pero aquí es donde entra el truco del que estoy realmente orgulloso. Dado que no estamos usando la pila alternativa para otra cosa, también podríamos jugar golf en el 10 también. Para hacer esto, empujaremos 4 números arbitrarios en la pila justo al comienzo del programa. Como también presionamos 32, esto aumenta el valor de la
[]nilad, a 5, lo que hace que nuestro10fragmento sea mucho más conveniente. Y, por suerte para nosotros, ¡también nos permite jugar a los fragmentos 32 y 26 !Se convierte
Así que aquí hay una explicación detallada:
fuente
V ,
151311 bytesPruébalo en línea!
Explicación
fuente
Hojas de cálculo de Google,
6765 bytes= Fórmula de matriz (IF (ROW (A1: Z) = COLUMN (A1: Z26), CHAR (96 + ROW (A1: Z26)), ""))Saliendo de la aclaración de que cualquier espacio en blanco servirá, he usado celdas visiblemente vacías
Avíseme si esto no cuenta, si he entendido mal el recuento de bytes o si he jodido algo de etiqueta, ya que esta es mi primera publicación aquí.
Editar: Resulta que puedo guardar 2 bytes al omitir el "" ya que las hojas de Google aceptarán un valor vacío si.
fuente
APL (Dyalog) ,
97 bytes SBCS-2 bytes gracias a la pista de ngn.
[¡Pruébalo en línea!] [TIO-j3o0ipjy]
⎕Ael alfabeto mayúscula A⌸entre cada par (elemento, lista de índices), inserte la siguiente función tácita:↑⍨del elemento (la letra) tome ...∘el…-número de caracteres de índice negado, es decir, muchos caracteres de la parte posterior, relleno en el frente con espacios.Pruébalo en línea!
fuente
↑es{.y⍳esi.Adverbios:¨es"0y⍨es~.(a.{~97+i.26){."0~-1+i.26⌸para generar una matriz adecuada y ahorre 2 bytesOctava,
2519 o 12? bytesPruébalo en línea!
Otra solución propuesta por @LuisMendo (12 bytes) que lo probé en la versión de Windows de Octave:
Explicación:
Genera matriz diagonal de
a:z.fuente
Java 8,
72717061 bytes-1 byte generando el alfabeto en mayúsculas en lugar de minúsculas.
-1 byte imprimiendo directamente, en lugar de devolver una cadena multilínea.
-8 bytes gracias a @ OliverGrégoire utilizando
printfdirectamente para deshacerse de élString s="";. Y también -1 byte cambiando()->ao->.Pruébalo aquí
fuente
c=65(o en64realidad) para que no necesite el número de 3 dígitos. ¿Puede devolver una matriz en lugar de la cadena ahorrarle bytes ya que puede eliminar el+"\n"?()->{for(int a=0;a++<26;)System.out.printf("%"+a+"c%n",a+96);}usando la misma idea que en otro desafío .Jalea ,
109 bytes-1 byte gracias a Dennis (evite disminuir
Jutilizando un rango reducido26Ḷ, directamente)Un programa completo que imprime el resultado.
Pruébalo en línea!
(
ØaJ’⁶ẋżpara 7 es un enlace monádico que devuelve una lista de listas de listas de caracteres, pero[["a"],[" ","b"],[" ","c"],...]es probable que sea inaceptable).Sin embargo, no me sorprendería si hubiera una forma más corta en la que no había pensado.
¿Cómo?
fuente
[["a"],[" ","b"],[" "," ","c"],...]ya que una lista de caracteres es una definición alternativa para una cadena, pero una tupla no parece encajar :)"..."es una lista de caracteres, así que realmente es[[['a']],[[[' '],['b']],[[' ',' '],['c']],...]porque Jelly no tiene cadenas, solo listas.26Ḷ⁶ẋżØaYguarda un byte.ØaJ’⁶ẋżpara7, para su versión alternativa.PowerShell, 29 bytes
fuente
$_medida que avanzas, bien.Alice ,
2220 bytesPruébalo en línea!
Aunque la salida es una cadena, resulta que el modo ordinal no es el camino a seguir para este desafío.
Explicación
Solución previa
Pruébalo en línea!
Revisé unas diez soluciones de 23 bytes antes de poder encontrar esta.
Explicación
Este programa usa la cinta para rastrear el número de espacios a la salida. Los modos cardinal y ordinal usan la misma cinta, pero tienen cabezales de cinta separados. Los dos modos tienen diferentes interpretaciones de lo que ven en la cinta, y el programa aprovecha al máximo esa diferencia.
Los comandos se ejecutan en el siguiente orden:
fuente
Brainfuck, 103 bytes
Pruébalo en línea!
La ubicación de las variables es de alguna manera mejorable.
Explicación
fuente
Hojas de cálculo de Google, 69 bytes
Nada complicado aquí. El único truco es usar
ArrayFormulayROW(A1:A26)devolver 26 valores diferentes para laJOINfunción. La salida se ve así:Creo que Excel 2016 puede hacer lo mismo,
TEXTJOINpero no puedo ingresar fórmulas de matriz en la versión en línea y solo tengo 2013 yo mismo. La fórmula debería ser esta:Al ingresarlo como una fórmula de matriz ( Ctrl+ Shift+ Enter) se agregan llaves
{ }en ambos lados, llevándolo a 67 bytes. Cualquiera que pueda verificar que funciona es bienvenido a usarlo como su propia respuesta.fuente
Semilla , 6014 bytes
No creo que esto gane ningún premio, pero solo por diversión, aquí hay una solución en Seed.
Se traduce al siguiente programa Befunge:
fuente
shortC , 33 bytes
Pruébalo en línea!
fuente
Agregar ++ , 1069 bytes
Pruébalo en línea!
Sí. Eso está codificado. Estoy seguro de que hay una mejor manera, y si desea encontrarla, continúe, pero de esta manera parece funcionar mejor ya que Add ++ es difícil de trabajar con la memoria.
fuente
R ,
594947 bytes-10 bytes gracias a djhurio
-2 bytes gracias a Sven Hohenstein
Imprime en stdout. Superado por el usuario 2390246
Pruébalo en línea!
fuente
26^2con676para guardar un byte.m=matrix("",26,26);diag(m)=letters;write(m,'',26)(49 bytes)cat(m,fill=27)"diag<-"(x, y)es similar adiag(x) <- y. El valor no se asigna a una variable sino que se devuelve.> <> ,
46 4442 bytesPruébalo en línea!
Explicación
Esta es una toma completamente diferente de mis 46 bytes anteriores, así que también he incluido el TIO en el único. 46 bytes ¡Pruébelo en línea!
A continuación se muestra un enlace a las presentaciones de Emigna, fue la primera respuesta> <> pero creo que la mía es lo suficientemente diferente (y ahorra algunos bytes) para garantizar una segunda.
La respuesta de Emigna
fuente
Haskell ,
66 65 58 57 4543 bytesGracias a @nimi y @maple_shaft por guardar
1214 bytes.Pruébalo en línea!
fuente
<$(' '<$[1..(fromEnum n-97)])(' '<$['b'..n]).f=.['a'..'z']>>= \n->(' '<$['b'..n])++[n,'\n'].PHP, 23 bytes
Nota: utiliza la codificación IBM-850.
Corre así:
Explicación
Cree una matriz de todos los caracteres del alfabeto, únala con una pestaña vertical como pegamento.
fuente
brainfuck , 80 bytes
Pruébalo en línea!
Formateado:
Utiliza una función de generación multiplicativa simple para poner algunas constantes en la memoria, luego repite el proceso de imprimir N espacios y luego
'A' + NparaN = 0..25.Anotado:
fuente
RProgN 2 , 5 bytes
\ x0B es un literal de tabulación vertical
Esto solo toma el alfabeto en minúsculas, lo divide y lo une con pestañas verticales. Esto produce el efecto deseado en ciertos terminales de Bash.
fuente