PowerShell v3 +, 60 78 67 byte
-join(65..90|%{[char]$_+'.,'[$_-le89]+" "+"`n"*($_-in71,80,83,86)})
ĐỒNG Ý. Tôi thực sự đã đọc, hiểu và theo dõi thông số kỹ thuật lần này. Hứa. :CƯỜI MỞ MIỆNG
Đưa mảng 65..90
và vòng lặp qua từng phần tử |%{...}
. Mỗi lần lặp, chúng tôi đang xây dựng một chuỗi mới bằng cách sử dụng phép nối, lập chỉ mục và nhân.
Đầu tiên, chúng tôi lấy số hiện tại và char
bỏ nó để biến nó thành một chữ cái ASCII. Điều đó được kết hợp với một char khác, dựa trên việc lập chỉ mục vào chuỗi '.,'
cho dù chúng ta có ở đó 90
hay không (nghĩa là tính đến Z.
trong khi tất cả các phần còn lại là dấu phẩy). Chuỗi đó được nối với " "
không gian để phân tách các chữ cái và phép nhân chuỗi "`n"
dựa trên giá trị Boolean cho dù phần tử hiện tại có phải là -in
mảng được chỉ định hay không (nghĩa là chúng ta có cần nối vào một ký tự dòng mới hay không). Chuỗi kết quả được để lại trên đường ống.
Các chuỗi đó được gói gọn trong parens và -join
ed lại với nhau thành một chuỗi mới, sau đó cũng được để lại trên đường ống và ẩn Write-Output
ở cuối in kết quả. Vì chúng tôi có `n
trong chuỗi, nó tự động được chuyển đổi thành dòng mới khi in.
Yêu cầu v3 + cho -in
toán tử. Có một khoảng trống trên mỗi dòng, đó là OK theo thông số kỹ thuật thách thức.
Thí dụ
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])/