PowerShell v3 +、60 78 67バイト
-join(65..90|%{[char]$_+'.,'[$_-le89]+" "+"`n"*($_-in71,80,83,86)})
OK。今回は実際に仕様を読んで理解し、それに従いました。約束する。:D
配列65..90
を取得し、各要素をループします|%{...}
。繰り返しごとに、連結、インデックス付け、および乗算を使用して新しい文字列を構築しています。
まず、現在の番号を取得してchar
キャストし、ASCII文字にします。それは、文字列へのインデックス付けに基づいて、他の文字と連結され'.,'
ます90
(つまり、Z.
残りはすべてカンマである間を考慮します)。これ" "
は文字をスペースで区切るために連結された文字列であり"`n"
、現在の要素が-in
指定された配列であるかどうか(つまり、改行文字で連結する必要があるかどうか)のブール値に基づいた文字列乗算です。結果の文字列はパイプラインに残ります。
これらの文字列は括弧にカプセル化さ-join
れ、新しい文字列にまとめられます。この文字列はパイプラインに残されWrite-Output
、最後に暗黙的に結果が出力されます。我々が持っているので`n
、文字列には、自動的に印刷時に改行に変換されます。
-in
オペレーターにはv3 +が必要です。各行の末尾にスペースがありますが、これはチャレンジ仕様ごとに問題ありません。
例
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])/