PowerShell v3 +, 60 78 67 bayt
-join(65..90|%{[char]$_+'.,'[$_-le89]+" "+"`n"*($_-in71,80,83,86)})
TAMAM. Aslında bu sefer okudum, anladım ve izledim. Söz vermek. : D
Diziyi alır 65..90
ve her elemanın üzerinde döner |%{...}
. Her yineleme, birleştirme, dizin oluşturma ve çarpma kullanarak yeni bir dize oluşturuyoruz.
İlk önce, şu anki sayıyı alıp char
ASCII harfi yapmak için atarız . Bu dizeye endeksleme dayalı başka karakter ile birleştirilmiş oluyor '.,'
biz de olsanız 90
veya olmasın (yani için hesaba Z.
her şey virgül olmak yerken). Bu " "
, harfleri boşlukla ayırmak için birleştirilmiş dize "`n"
ve geçerli öğenin -in
belirtilen dizi olup olmadığına ilişkin Boolean değerine dayalı dize çarpımı (yani, yeni satır karakterinde birleştirme yapmamız gerekip gerekmediği). Elde edilen dize boru hattında bırakılır.
Bu dizgiler parenler içinde kapsüllenir ve -join
birlikte yeni bir dizgide birleştirilir, bu daha sonra da boru hattında bırakılır Write-Output
ve sonunda örtük olarak sonuç yazdırılır. Elimizdeki bu yana `n
dizede, otomatik olarak baskı üzerine satırsonlarına dönüştürülür.
-in
Operatör için v3 + gerektirir . Her satırda, meydan okumaya göre her şey yolunda olan derli toplu bir alanı var.
Örnek
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])/