PowerShell v3 +, 60 78 67 octets
-join(65..90|%{[char]$_+'.,'[$_-le89]+" "+"`n"*($_-in71,80,83,86)})
D'ACCORD. En fait, j'ai lu, compris et suivi les spécifications cette fois-ci. Promettre. :RÉ
Prend le tableau 65..90
et les boucles sur chaque élément |%{...}
. À chaque itération, nous construisons une nouvelle chaîne à l'aide de la concaténation, de l'indexation et de la multiplication.
Premièrement, prenons le nombre actuel et le char
convertissons pour en faire une lettre ASCII. Cela est concaténé avec un autre caractère, basé sur l'indexation dans la chaîne, '.,'
que nous en soyons 90
ou non (c.-à-d., À prendre en compte Z.
tout en laissant le reste sous forme de virgules). Il s'agit d'une chaîne concaténée avec " "
pour séparer les lettres des espaces, et d'une multiplication de chaîne "`n"
basée sur la valeur booléenne pour déterminer si l'élément actuel est -in
le tableau spécifié (c'est-à-dire, si nous devons concaténer un caractère de nouvelle ligne). La chaîne résultante est laissée sur le pipeline.
Ces chaînes sont encapsulées dans des parenthèses et -join
éditées ensemble dans une nouvelle chaîne, qui est également laissée sur le pipeline et implicite Write-Output
à la fin de l’impression du résultat. Comme nous avons `n
dans la chaîne, elle est automatiquement convertie en nouvelles lignes lors de l'impression.
Nécessite v3 + pour l' -in
opérateur. Dispose d'un espace de fin sur chaque ligne, ce qui est acceptable pour les spécifications du challenge.
Exemple
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])/