PowerShell v3 +, 60 78 67 bytes
-join(65..90|%{[char]$_+'.,'[$_-le89]+" "+"`n"*($_-in71,80,83,86)})
OKAY. Esta vez he leído, entendido y seguido las especificaciones. Promesa. :RE
Toma la matriz 65..90
y recorre cada elemento |%{...}
. Cada iteración, estamos construyendo una nueva cadena usando concatenación, indexación y multiplicación.
Primero, tomamos el número actual y lo char
emitimos para convertirlo en una letra ASCII. Eso se concatena con otro carácter, basado en la indexación en la cadena '.,'
si estamos 90
o no (es decir, para tener en cuenta Z.
mientras todo el resto son comas). Esa es una cadena concatenada " "
para separar las letras en el espacio y la multiplicación de cadenas "`n"
basada en el valor booleano para determinar si el elemento actual es -in
la matriz especificada (es decir, si necesitamos concatenar en un carácter de nueva línea). La cadena resultante se deja en la tubería.
Esas cadenas se encapsulan en parens y se -join
editan juntas en una nueva cadena, que luego también se deja en la tubería e implícita Write-Output
al final imprime el resultado. Como tenemos `n
en la cadena, se convierte automáticamente en nuevas líneas al imprimir.
Requiere v3 + para el -in
operador. Tiene un espacio final en cada línea, lo cual está bien según las especificaciones del desafío.
Ejemplo
PS C:\Tools\Scripts\golfing> .\now-i-know-my-abc.ps1
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.
/(?=[HQTW])/