Étant donné une position avec une rangée de tours et / ou des espaces vides, affichez le nombre de mouvements de tour différents possibles. Une tour peut se déplacer vers la gauche ou la droite vers un espace vide, mais pas vers celui qui nécessite de passer sur une autre tour. Lorsqu'une tour se déplace, les autres tours restent en place.
Par exemple, à partir de cette position, 6 mouvements sont possibles:
.R..RRR.
- La première tour (la plus à gauche) peut se déplacer de 1 espace vers la gauche, ou 1 ou 2 espaces vers la droite (3 mouvements)
- La tour suivante ne peut se déplacer que de 1 ou 2 cases à gauche (2 mouvements)
- La troisième tour ne peut pas bouger du tout car elle est coincée entre deux autres tours (0 mouvement)
- La dernière tour ne peut se déplacer que de 1 case vers la droite (1 coup)
Notez qu'une position peut ne pas avoir de tour du tout, ou pas d'espace vide du tout.
Entrée: Une liste non vide (chaîne, tableau, etc.) de tours et d'espaces vides. Vous pouvez les représenter sous la forme True
/ False
, 1
/ 0
, 'R'
/ '.'
ou deux caractères codés sur un seul octet ou des chiffres à un chiffre de votre choix. C'est à vous de choisir celui qui signifie tour et celui qui signifie espace vide.
Sortie: Un entier non négatif. Les flotteurs entiers sont également très bien.
Cas de test
La sortie est le nombre à gauche.
6 .R..RRR.
0 .
0 R
4 R..RR
3 ...R
8 ..R..R..
0 ......
Pour plus de cas de test, voici toutes les entrées jusqu'à la longueur 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