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..90
dan mengulangi setiap elemen |%{...}
. Setiap iterasi, kami membuat string baru menggunakan penggabungan, pengindeksan, dan multiplikasi.
Pertama, kami mengambil nomor saat ini dan char
melemparkannya untuk menjadikannya surat ASCII. Itu digabungkan dengan karakter lain, berdasarkan pengindeksan ke string '.,'
apakah kita setuju 90
atau 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 -in
array yang ditentukan (yaitu, apakah kita perlu menggabungkan pada karakter baris baru). String yang dihasilkan ditinggalkan di pipa.
String-string itu dienkapsulasi dalam parens, dan -join
diedarkan bersama menjadi string baru, yang kemudian juga ditinggalkan di pipeline dan tersirat Write-Output
pada akhirnya mencetak hasilnya. Karena kita memiliki `n
string, maka secara otomatis dikonversi ke baris baru setelah dicetak.
Membutuhkan v3 + untuk -in
operator. 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])/