Вступ
Булева матриця розміром 2 × n може бути представлена у вигляді рядка з чотирьох символів . ':
. Рядок має "верхній рядок" і "нижній рядок", з крапками, що представляють собою 1, а порожні пробіли - 0. Наприклад, матриця 2 × 6
1 0 1 0 0 1
0 0 0 1 0 1
може бути представлений як ' '. :
. Ваше завдання - взяти матрицю в цій «стислої формі» і обертати її записи на один крок за годинниковою стрілкою, як конвеєр.
Вхідні дані
Вхід - це один рядок над символами . ':
. Її довжина гарантовано становить не менше 2.
Вихід
Ваш вихід повинен бути вхідним рядком, але з кожною крапкою, поверненою на один крок за годинниковою стрілкою. Більш чітко, крапки у верхньому ряду більше одного місця праворуч, за винятком самого правого, який рухається вниз. Крапки в нижньому ряду рухаються на один крок вліво, крім крайнього лівого, який рухається вгору. Зокрема, вихідний рядок повинен мати таку ж довжину, що і вихідний, а пробіл - значний.
Приклад
Розглянемо вхідний рядок :..:'.
, який відповідає матриці 2 × 6
1 0 0 1 1 0
1 1 1 1 0 1
Повернутий варіант цієї матриці є
1 1 0 0 1 1
1 1 1 0 1 0
що відповідає рядку ::. :'
.
Правила та оцінка
Ви можете написати повну програму або функцію. Виграє найменший кількість байтів, а стандартні лазівки заборонені. Ви можете вирішити, чи вхідні та вихідні дані укладені в лапки, і один зворотний новий рядок також прийнятний в обох.
Тестові справи
Ці тестові приклади укладені у подвійні лапки.
" " -> " "
" ." -> ". "
". " -> "' "
"' " -> " '"
" '" -> " ."
": " -> "''"
"''" -> " :"
":." -> ":'"
":.'" -> ":'."
"..." -> ":. "
": :" -> "':."
"':." -> ".:'"
".:'" -> ": :"
" " -> " "
"::::" -> "::::"
":..:'." -> "::. :'"
" : .:'" -> ". '.. :"
": ''. :" -> "'' :'.."
"........" -> ":...... "
":::: " -> ":::'' "
" ::::" -> " ..:::"
" : : : : " -> ". : : : '"
".'.'.'.'.'" -> "'.'.'.'.'."
".. :: '.' :." -> ": ..'' .' :.'"
".' '.:: :.'. . ::.' '. . .::' :.'." -> "' ' .:.''..'.'. ..:' ' .'. ...'''..'.'"
s=>s.replace(/./g,(c,i)=>" '.:"[(i?q>' '&q!=".":c>"'")+(q=c,s[++i]?s[i]>"'":c>' '&c!=".")*2])
(переверніть 2 частини, щоб я міг збільшити i, менше regexp та більш простий тест, зберегти prev c у q)