Dada una posición con una fila de torres y / o espacios vacíos, muestra cuántos movimientos de torre diferentes son posibles. Una torre puede moverse hacia la izquierda o hacia la derecha a un espacio vacío, pero no a uno que requiera pasar sobre otra torre. Cuando una torre se mueve, las otras torres permanecen en su lugar.
Por ejemplo, desde esta posición, son posibles 6 movimientos :
.R..RRR.
- La primera torre (más a la izquierda) puede moverse 1 espacio a la izquierda, o 1 o 2 espacios a la derecha (3 movimientos)
- La siguiente torre solo puede moverse 1 o 2 espacios a la izquierda (2 movimientos)
- La tercera torre no puede moverse en absoluto porque está apretada entre otras dos torres (0 movimientos)
- La última torre solo puede moverse 1 espacio a la derecha (1 movimiento)
Tenga en cuenta que una posición puede no tener torres o espacios vacíos.
Entrada: una lista no vacía (cadena, matriz, etc.) de torres y espacios vacíos. Puede representarlos como True
/ False
, 1
/ 0
, 'R'
/ '.'
o cualquiera de los dos caracteres consistentes de un solo byte o números de un dígito de su elección. Depende de usted cuál significa torre y cuál significa espacio vacío.
Salida: un entero no negativo. Los flotadores de números enteros también están bien.
Casos de prueba
La salida es el número a la izquierda.
6 .R..RRR.
0 .
0 R
4 R..RR
3 ...R
8 ..R..R..
0 ......
Para más casos de prueba, aquí están todas las entradas hasta la longitud 5.
0 .
0 R
0 ..
1 .R
1 R.
0 RR
0 ...
2 ..R
2 .R.
1 .RR
2 R..
2 R.R
1 RR.
0 RRR
0 ....
3 ...R
3 ..R.
2 ..RR
3 .R..
3 .R.R
2 .RR.
1 .RRR
3 R...
4 R..R
3 R.R.
2 R.RR
2 RR..
2 RR.R
1 RRR.
0 RRRR
0 .....
4 ....R
4 ...R.
3 ...RR
4 ..R..
4 ..R.R
3 ..RR.
2 ..RRR
4 .R...
5 .R..R
4 .R.R.
3 .R.RR
3 .RR..
3 .RR.R
2 .RRR.
1 .RRRR
4 R....
6 R...R
5 R..R.
4 R..RR
4 R.R..
4 R.R.R
3 R.RR.
2 R.RRR
3 RR...
4 RR..R
3 RR.R.
2 RR.RR
2 RRR..
2 RRR.R
1 RRRR.
0 RRRRR