Giới thiệu
Một ma trận Boolean 2 × n có thể được biểu diễn dưới dạng một chuỗi gồm bốn ký tự . ':
. Chuỗi có "hàng trên" và "hàng dưới", với các dấu chấm đại diện cho 1 và khoảng trống đại diện cho 0. Ví dụ: ma trận 2 × 6
1 0 1 0 0 1
0 0 0 1 0 1
có thể được đại diện như ' '. :
. Nhiệm vụ của bạn là lấy một ma trận ở "dạng nén" này và xoay các mục của nó một bước theo chiều kim đồng hồ, giống như một băng chuyền.
Đầu vào
Đầu vào của bạn là một chuỗi trên các ký tự . ':
. Chiều dài của nó được đảm bảo ít nhất là 2.
Đầu ra
Đầu ra của bạn sẽ là chuỗi đầu vào, nhưng với mỗi dấu chấm được xoay một bước theo chiều kim đồng hồ. Rõ ràng hơn, các dấu chấm ở hàng trên có thêm một vị trí bên phải, ngoại trừ vị trí ngoài cùng bên phải, di chuyển xuống. Các chấm ở hàng dưới di chuyển một bước sang trái, ngoại trừ điểm ngoài cùng bên trái, di chuyển lên. Cụ thể, chuỗi đầu ra phải có cùng độ dài với bản gốc và khoảng trắng là đáng kể.
Thí dụ
Hãy xem xét chuỗi đầu vào :..:'.
, tương ứng với ma trận 2 × 6
1 0 0 1 1 0
1 1 1 1 0 1
Phiên bản xoay của ma trận này là
1 1 0 0 1 1
1 1 1 0 1 0
tương ứng với chuỗi ::. :'
.
Quy tắc và tính điểm
Bạn có thể viết một chương trình đầy đủ hoặc một chức năng. Số byte thấp nhất sẽ thắng và các sơ hở tiêu chuẩn không được phép. Bạn có thể quyết định liệu đầu vào và đầu ra có được đặt trong dấu ngoặc kép hay không, và một dòng mới có thể được chấp nhận trong cả hai.
Các trường hợp thử nghiệm
Những trường hợp thử nghiệm được đính kèm trong dấu ngoặc kép.
" " -> " "
" ." -> ". "
". " -> "' "
"' " -> " '"
" '" -> " ."
": " -> "''"
"''" -> " :"
":." -> ":'"
":.'" -> ":'."
"..." -> ":. "
": :" -> "':."
"':." -> ".:'"
".:'" -> ": :"
" " -> " "
"::::" -> "::::"
":..:'." -> "::. :'"
" : .:'" -> ". '.. :"
": ''. :" -> "'' :'.."
"........" -> ":...... "
":::: " -> ":::'' "
" ::::" -> " ..:::"
" : : : : " -> ". : : : '"
".'.'.'.'.'" -> "'.'.'.'.'."
".. :: '.' :." -> ": ..'' .' :.'"
".' '.:: :.'. . ::.' '. . .::' :.'." -> "' ' .:.''..'.'. ..:' ' .'. ...'''..'.'"
s=>s.replace(/./g,(c,i)=>" '.:"[(i?q>' '&q!=".":c>"'")+(q=c,s[++i]?s[i]>"'":c>' '&c!=".")*2])
(lật 2 phần để tôi có thể tăng i, ít regrec và kiểm tra đơn giản hơn, lưu trước c trong q)