Dada una letra del alfabeto inglés, su tarea es construir un alfabeto semi-diagonal a la entrada.
¿Cómo construir un alfabeto semi-diagonal?
Descripción breve : Primero, toma la posición de la letra en el alfabeto, P
( P
está indexada aquí 1). Luego, imprime cada letra hasta la entrada (inclusive) en una línea, precedida por P-1
y repite esa letra P
veces, intercalando con espacios.
Ejemplos :
Dado
F
, su programa debería generar:UNA cama y desayuno CCC DDDD EEEEE FFFFFF
Dado
K
, su programa debería generar:UNA cama y desayuno CCC DDDD EEEEE FFFFFF GGGGGGG HHHHHHHH IIIIIIIII JJJJJJJJJJ KKKKKKKKKKK
Dado
A
, su programa debería generar:A
Reglas
Puede elegir caracteres en minúsculas o mayúsculas, pero eso debería ser coherente.
Puede tener espacios extraños de la siguiente manera:
- Un espacio inicial consistente (en cada línea).
- Una (s) línea (s) nueva o final.
- Espacios finales.
La entrada y la salida se pueden tomar por cualquier medio estándar y se aplican las lagunas predeterminadas.
En su lugar, se le permite generar una lista de líneas, siempre que también proporcione la versión ascii-art .
Este es el código de golf , por lo que gana el código más corto en bytes.
Inspirado en este desafío .
Respuestas:
Python 3 , 59 bytes
Pruébalo en línea!
Python 3 , 61 bytes
Pruébalo en línea! (enlace a la versión bonita)
fuente
Python 2 ,
636159 bytes-2 bytes gracias a Rod. -2 bytes gracias a Felipe Nardi Batista.
Pruébalo en línea!
fuente
C, 89 bytes
Pruébalo en línea!
fuente
PowerShell ,
4542 bytesPruébalo en línea!
Toma la entrada como un carácter literal, luego recorre las mayúsculas hasta ese punto, cada iteración antepone el número apropiado de espacios y luego el híbrido char \ space.
Guardado 3 bytes gracias a TessellatingHeckler.
fuente
"$args"
tanto al golf , que no funcionaría aquí, olvidé el[0]
método. Jaja.JavaScript (ES6), 85 bytes
Funciona en minúsculas para entrada y salida. Emite un espacio inicial y un espacio final en cada línea.
Manifestación
Mostrar fragmento de código
fuente
`${s} `
puede ser sustituido por(s+"")
para el ahorro de un byte(s+" ")
, pero eso es igual de largo.APL (Dyalog) , 26 bytes
Solicita caracteres escalares. Imprime la lista de líneas.
Pruébalo en línea! (tiene versión de arte ASCII en un byte adicional)
⎕
solicitud de entrada⎕A⍳
encontrar ɩ ndex en un alfabeto⍳
primero que muchos Ɩ ntegers(
…)¨
Aplique la siguiente función tácita a cada uno:⊃∘⎕A
elige la letra de la letra del argumento del alfabeto A⊢⍴
cíclicamente darle forma a la longitud del argumento' ',¨⍨
agregar un espacio a cada⍴∘'',
anteponer una cadena de longitud de argumento (rellenado con espacios)∊
ϵ nlist (aplanar)La versión de arte ASCII solo tiene una
↑
a la izquierda; Mezcle la lista de cadenas en la tabla de caracteres.fuente
Perl 5 , 31 bytes
Código de 30 bytes + 1 para
-l
.Pruébalo en línea!
fuente
say
lugar de la-l
bandera: ¡ Pruébelo en línea!-E
/-M5.01
, lo he usadosay
considerablemente en el pasado, y probablemente abusaría del hecho de quesay
es una alternativa aprint
un desafío de fuente restringida o similar, pero por el bien de -3, seguiré como está por ahora. Vea esta meta publicación para un argumento justo . Sin embargo, aprecio la entrada!Dyalog APL, 38 bytes
Pruébalo en línea!
¿Cómo?
⎕A↑⍨
- toma el alfabeto hasta⎕A⍳⍵
- el carácter de entrada¨
- por cada char⍵,' '
- toma el char y un espacio(...)⍴
- remodelar a2×y←⎕A⍳⍵
- dos veces el índice del carácter en el alfabeto(y/' ')
- y anteponer espacios de índice de caracteres↑
- luego aplanarfuente
APL (Dyalog Classic) , 26 bytes
Pruébalo en línea!
Explicación
fuente
{}
, sustituir⍵
con⎕
, y dicen que es un "programa completo" en lugar de una función. Eso haría que su solución sea la mejor (hasta ahora).V ,
28, 26, 25, 23 bytes ( compitiendo )Pruébalo en línea!
Tenga en cuenta que aunque he estado planeando agregar ciertas características durante mucho tiempo, este desafío fue lo que me convenció para finalmente hacerlo.
La salida contiene un espacio inicial en cada línea y una nueva línea final.
Hexdump:
Explicación:
fuente
05AB1E , 10 bytes
Pruébalo en línea!
-2 gracias a Adnan .
Añadir
»
para que se imprima en líneas separadas.fuente
<
como un espacio inicial consistente está bien.A¹¡н«ðâƶāú
debería funcionar para 10 bytes¹¡
eso hará que no funcione ... oh, por eso hay un«
allí. : pR,
9488 bytes-6 bytes gracias a Giuseppe
Sin golf:
fuente
f
es un trazador de líneas y usar enmatch
lugar dewhich
guardar un byte.Haskell,
5244 bytesDevuelve una lista de líneas.
Pruébalo en línea!
Editar: @jferard: guardado tres bytes. ¡Gracias!
fuente
f k=[tail$[" ",s:" "]>>=(['A'..s]>>)|s<-['A'..k]]
tail$
.JavaScript (ES8), 92 bytes
Utiliza letras minúsculas. Las líneas tienen un espacio inicial y uno posterior. Devuelve una matriz de líneas.
Fragmento de prueba
fuente
Casco , 13 bytes
Toma un carácter entre comillas simples como argumento de línea de comando, imprime el resultado en STDOUT. Pruébalo en línea!
Explicación
Estoy explotando la forma en que Husk imprime listas de listas de cadenas: unir listas internas con espacios y listas externas con nuevas líneas.
fuente
05AB1E ,
151413 bytesGuardado 1 byte gracias a Adnan
Pruébalo en línea! o la versión de arte Ascii
Explicación
fuente
A¹¡н«
en lugar deADIk>£
debería funcionarA¹¡н
pero no consideré«
recibir la última carta, así que no fue lo suficientemente buena: PAPL (Dyalog Unicode) , SBCS de 22 bytes
Pruébalo en línea!
Usos
⎕io←1
. Imprime un espacio principal, que está permitido.fuente
QBasic,
797472 bytesGracias a Taylor Scott por el ahorro de bytes (¡dos veces!)
Utiliza mayúsculas. La entrada es presionando una tecla y no se repite en la pantalla.
Explicación
Hacemos un bucle
i
desde1
hasta la posición de la letra límite en el alfabeto (basado en 1). Para cada unoi
, nos movemos a la columnai
de la pantalla usandoTAB
; luego,i
veces, imprimimos lai
letra del alfabeto seguida de un espacio.fuente
INPUT$(1)
comando como un reemplazo directo de la variablez$
para un delta de -2 bytesJapt
-R
,24231715 bytesEmite una matriz, incluye una nueva línea principal y un espacio inicial y final en cada línea.
Pruébalo
fuente
Carbón , 18 bytes
Pruébalo en línea!
fuente
E…·?θ⁺× κ⪫× κι
harían el trabajo en 14 bytes.?
llegó allí. Debería serA
en su lugar, creo. Oh, espera, ohhhhh, entiendo lo que quieres decir.Braingolf , 65 bytes
Pruébalo en línea!
Minúscula
Contiene 1 espacio final en cada línea y una nueva línea final al final de la salida.
fuente
C # (.NET Core) , 103 bytes
Pruébalo en línea!
fuente
JavaScript,
10294 bytes2 bytes guardados gracias a Neil
fuente
Retina , 51 bytes
Pruébalo en línea! Explicación:
Duplicar la (primera) letra.
Gírelo de nuevo 1 en el alfabeto o elimínelo si es un duplicado
A
. Siga duplicando y girando hasta que dupliquemosA
, momento en el cual la eliminación deshace la duplicación y el ciclo se completa.Reemplace cada letra con una línea con la letra acolchada en ambos lados.
Inserte letras duplicadas entre todos los pares de espacios de relleno a la derecha de las letras existentes.
fuente
Haskell , 57 bytes
Pruébalo en línea!
fuente
Carbón de leña , 15 bytes
Pruébalo en línea! El enlace es a la versión detallada del código. Explicación:
Si el relleno adicional fuera legal, esto funcionaría para 14 bytes:
Pruébalo en línea! El enlace es a la versión detallada del código.
fuente
Mathematica, 70 bytes
minúsculas
produce una lista
Gracias @ ngenisis para correcciones
Para la versión ascii-art coloque
Column@
al principiofuente
Excel VBA, 72 bytes
Función de ventana inmediata anónima de VBE que toma entrada de la celda
A1
y salidas a la ventana inmediata de VBEfuente
Pyth , 17 bytes
Pruébalo aquí (bonita versión impresa).
¿Como funciona esto?
hxG
- Toma el índice de la entrada en minúsculas.<G
- Recorta todos los caracteres después de la entrada del alfabeto..e
- Mapa enumerado. Mapas sobre el alfabeto recortado con los índices comok
y las letras comob
.*kd
- Añadirk
espacios.+bd
-b
+ un espacio (la letra actual + espacio).*...hk
- Repitek+1
veces.+(...)(...)
- Concatenar.fuente
.e+*kdjd*bhk<GhxG
17 bytes.e+*kd*+bdhkhcGQ
C ++ (gcc) , 164 bytes
Mi primer intento después de mucho tiempo al acecho!
Código no oculto a continuación:
Pruébalo en línea!
fuente