Introducciones
Una matriz booleana 2 × n se puede representar como una cadena de los cuatro caracteres . ':
. La cadena tiene una "fila superior" y una "fila inferior", con puntos que representan 1s y espacios vacíos que representan 0s. Por ejemplo, la matriz 2 × 6
1 0 1 0 0 1
0 0 0 1 0 1
se puede representar como ' '. :
. Su tarea es tomar una matriz en esta "forma comprimida" y rotar sus entradas un paso en el sentido de las agujas del reloj, como una cinta transportadora.
Entrada
Su entrada es una sola cadena sobre los caracteres . ':
. Su longitud está garantizada para ser al menos 2.
Salida
Su salida será la cadena de entrada, pero con cada punto girado un paso en el sentido de las agujas del reloj. Más explícitamente, los puntos en la fila superior más un lugar a la derecha, excepto el más a la derecha, que se mueve hacia abajo. Los puntos en la fila inferior se mueven un paso hacia la izquierda, excepto el extremo izquierdo, que se mueve hacia arriba. En particular, la cadena de salida debe tener la misma longitud que la original, y el espacio en blanco es significativo.
Ejemplo
Considere la cadena de entrada :..:'.
, que corresponde a la matriz 2 × 6
1 0 0 1 1 0
1 1 1 1 0 1
La versión rotada de esta matriz es
1 1 0 0 1 1
1 1 1 0 1 0
que corresponde a la cadena ::. :'
.
Reglas y puntaje
Puede escribir un programa completo o una función. El conteo de bytes más bajo gana, y las lagunas estándar no se permiten. Puede decidir si la entrada y la salida están entre comillas, y una nueva línea final también es aceptable en ambas.
Casos de prueba
Estos casos de prueba están entre comillas dobles.
" " -> " "
" ." -> ". "
". " -> "' "
"' " -> " '"
" '" -> " ."
": " -> "''"
"''" -> " :"
":." -> ":'"
":.'" -> ":'."
"..." -> ":. "
": :" -> "':."
"':." -> ".:'"
".:'" -> ": :"
" " -> " "
"::::" -> "::::"
":..:'." -> "::. :'"
" : .:'" -> ". '.. :"
": ''. :" -> "'' :'.."
"........" -> ":...... "
":::: " -> ":::'' "
" ::::" -> " ..:::"
" : : : : " -> ". : : : '"
".'.'.'.'.'" -> "'.'.'.'.'."
".. :: '.' :." -> ": ..'' .' :.'"
".' '.:: :.'. . ::.' '. . .::' :.'." -> "' ' .:.''..'.'. ..:' ' .'. ...'''..'.'"
s=>s.replace(/./g,(c,i)=>" '.:"[(i?q>' '&q!=".":c>"'")+(q=c,s[++i]?s[i]>"'":c>' '&c!=".")*2])
(voltee 2 partes para que pueda aumentar i, menos