PowerShell v3 +, 60 78 67 byte
-join(65..90|%{[char]$_+'.,'[$_-le89]+" "+"`n"*($_-in71,80,83,86)})
BAIK. Saya sudah benar-benar membaca, mengerti, dan mengikuti spesifikasi kali ini. Janji. : D
Mengambil array 65..90dan mengulangi setiap elemen |%{...}. Setiap iterasi, kami membuat string baru menggunakan penggabungan, pengindeksan, dan multiplikasi.
Pertama, kami mengambil nomor saat ini dan charmelemparkannya untuk menjadikannya surat ASCII. Itu digabungkan dengan karakter lain, berdasarkan pengindeksan ke string '.,'apakah kita setuju 90atau tidak (yaitu, untuk menghitung Z.sementara semua sisanya adalah koma). String tersebut digabungkan dengan " "untuk memisahkan spasi huruf, dan string perkalian "`n"berdasarkan pada nilai Boolean untuk apakah elemen saat ini adalah -inarray yang ditentukan (yaitu, apakah kita perlu menggabungkan pada karakter baris baru). String yang dihasilkan ditinggalkan di pipa.
String-string itu dienkapsulasi dalam parens, dan -joindiedarkan bersama menjadi string baru, yang kemudian juga ditinggalkan di pipeline dan tersirat Write-Outputpada akhirnya mencetak hasilnya. Karena kita memiliki `nstring, maka secara otomatis dikonversi ke baris baru setelah dicetak.
Membutuhkan v3 + untuk -inoperator. Memiliki ruang tambahan di setiap baris, yang OK untuk spesifikasi tantangan.
Contoh
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])/