Biorąc pod uwagę pozycję z rzędem wież i / lub pustych przestrzeni, wypisz ile różnych ruchów wież jest możliwych. Wieża może przesunąć się w lewo lub w prawo na puste miejsce, ale nie na takie, które wymaga przejścia przez inną wieżę. Kiedy wieża się porusza, pozostałe wieże pozostają na swoim miejscu.
Na przykład z tej pozycji możliwe jest 6 ruchów :
.R..RRR.
- Pierwsza (lewa skrajna) wieża może przesunąć się o 1 pole w lewo lub 1 lub 2 pola w prawo (3 ruchy)
- Następna wieża może przenieść tylko 1 lub 2 pola do końca (2 ruchy)
- Trzecia wieża w ogóle się nie porusza, ponieważ jest wciśnięta między dwie inne wieże (0 ruchów)
- Ostatnia wieża może przesunąć tylko 1 pole w prawo (1 ruch)
Zauważ, że pozycja może w ogóle nie mieć wież lub w ogóle nie mieć pustych miejsc.
Dane wejściowe: niepusta lista (łańcuch, tablica itp.) Wież i pustych spacji. Możesz przedstawić je jako True
/ False
, 1
/ 0
, 'R'
/ '.'
lub dowolne dwa spójne odrębne jednobajtowe znaki lub jednocyfrowe liczby do wyboru. Od Ciebie zależy, która z nich oznacza wieżę, a która pustą przestrzeń.
Dane wyjściowe: nieujemna liczba całkowita. Również liczby zmiennoprzecinkowe są w porządku.
Przypadki testowe
Dane wyjściowe to liczba po lewej stronie.
6 .R..RRR.
0 .
0 R
4 R..RR
3 ...R
8 ..R..R..
0 ......
Aby uzyskać więcej przypadków testowych, tutaj są wszystkie dane wejściowe do długości 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