PowerShell v3 +,60 78 67字节
-join(65..90|%{[char]$_+'.,'[$_-le89]+" "+"`n"*($_-in71,80,83,86)})
好。这次,我实际上已经阅读,理解并遵循了规范。诺言。:D
获取数组65..90
并遍历每个元素|%{...}
。每次迭代,我们都使用串联,索引和乘法来构造一个新的字符串。
首先,我们将当前数字char
转换为ASCII字母。基于'.,'
是否索引我们是否在字符串90
中Z.
而将其与另一个char串联在一起(即,占所有其余字符的逗号)。这是一个字符串," "
用于与字母进行空格分隔,并"`n"
基于布尔值对字符串进行乘法运算,以确定当前元素是否-in
为指定数组(即,是否需要在换行符上进行连接)。结果字符串留在管道上。
这些字符串被封装在括号中,并-join
一起编辑成一个新的字符串,然后也留在管道中,并Write-Output
在最后隐式打印结果。由于我们`n
在字符串中,因此在打印时会自动将其转换为换行符。
要求v3 +为-in
操作员。每行都有一个尾随空格,根据挑战说明可以。
例
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])/