PowerShell v3 +, 60 78 67 Bytes
-join(65..90|%{[char]$_+'.,'[$_-le89]+" "+"`n"*($_-in71,80,83,86)})
OKAY. Dieses Mal habe ich die Spezifikation tatsächlich gelesen, verstanden und befolgt. Versprechen. : D
Übernimmt das Array 65..90
und durchläuft jedes Element |%{...}
. Bei jeder Iteration wird eine neue Zeichenfolge mithilfe von Verkettung, Indizierung und Multiplikation erstellt.
Zuerst nehmen wir die aktuelle Nummer und char
wandeln sie in einen ASCII-Buchstaben um. Das ist mit einem anderen Zeichen verknüpft, basierend auf der Indizierung in der Zeichenfolge, '.,'
ob es sich um ein Komma handelt 90
oder nicht Z.
. Das ist eine Zeichenfolge, die verkettet wird " "
, um die Buchstaben durch Leerzeichen zu trennen, und eine Zeichenfolgenmultiplikation "`n"
basierend auf dem Booleschen Wert, um festzustellen, ob das aktuelle Element -in
das angegebene Array ist (dh ob ein Zeilenumbruchzeichen verkettet werden muss). Die resultierende Zeichenfolge verbleibt in der Pipeline.
Diese Zeichenfolgen werden in Parens eingekapselt und -join
zu einer neuen Zeichenfolge zusammengefasst, die dann ebenfalls in der Pipeline verbleibt und Write-Output
am Ende implizit das Ergebnis ausgibt. Da `n
die Zeichenfolge vorhanden ist, wird sie beim Drucken automatisch in Zeilenumbrüche konvertiert.
Benötigt v3 + für den -in
Operator. Verfügt über ein Leerzeichen in jeder Zeile, was gemäß den Herausforderungsspezifikationen in Ordnung ist.
Beispiel
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])/