PowerShell v3 +, 60 78 67 bajtów
-join(65..90|%{[char]$_+'.,'[$_-le89]+" "+"`n"*($_-in71,80,83,86)})
DOBRZE. Tym razem przeczytałem, zrozumiałem i postępowałem zgodnie ze specyfikacją. Obietnica. :RE
Przejmuje tablicę 65..90i zapętla każdy element |%{...}. W każdej iteracji tworzymy nowy ciąg przy użyciu konkatenacji, indeksowania i mnożenia.
Najpierw bierzemy bieżący numer i charrzucamy nim, aby był literą ASCII. Jest to połączone z innym char, opartym na indeksowaniu do łańcucha, '.,'niezależnie od tego, czy jesteśmy przy, 90czy nie (tj. Aby uwzględnić, Z.podczas gdy cała reszta to przecinki). Jest to łańcuch połączony z " "separacją spacji liter i mnożenie łańcucha w "`n"oparciu o wartość logiczną dla tego, czy bieżący element jest -inokreśloną tablicą (tj. Czy musimy konkatenować znak nowego wiersza). Powstały ciąg zostaje pozostawiony w potoku.
Ciągi te są enkapsulowane w pareny i -joinłączone razem w nowy ciąg, który jest następnie pozostawiany w potoku i domyślnie Write-Outputna końcu drukuje wynik. Ponieważ mamy `nten ciąg, jest on automatycznie konwertowany na znaki nowej linii podczas drukowania.
Wymaga v3 + dla -inoperatora. Ma końcowe miejsce w każdej linii, co jest OK zgodnie ze specyfikacją wyzwania.
Przykład
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])/