Geben Sie bei einer Position mit einer Reihe von Türmen und / oder leeren Feldern aus, wie viele verschiedene Turmbewegungen möglich sind. Ein Turm kann sich nach links oder rechts zu einem leeren Feld bewegen, aber nicht zu einem, bei dem ein anderer Turm überfahren werden muss. Wenn sich ein Turm bewegt, bleiben die anderen Türme an Ort und Stelle.
Zum Beispiel sind von dieser Position aus 6 Züge möglich:
.R..RRR.
- Der erste Turm (ganz links) kann 1 Feld nach links oder 1 oder 2 Felder nach rechts bewegen (3 Züge).
- Der nächste Turm kann nur 1 oder 2 Felder nach links ziehen (2 Züge)
- Der dritte Turm kann sich überhaupt nicht bewegen, da er zwischen zwei anderen Türmen eingeklemmt ist (0 Züge)
- Der letzte Turm kann nur 1 Feld nach rechts bewegen (1 Zug)
Beachten Sie, dass eine Position möglicherweise überhaupt keine Türme oder gar keine Leerstellen hat.
Eingabe: Eine nicht leere Liste (Zeichenfolge, Array usw.) von Türmen und Leerzeichen. Sie können sie als True
/ False
, 1
/ 0
, 'R'
/ '.'
oder als zwei konsistente, unterschiedliche Einzelbytezeichen oder einstellige Zahlen Ihrer Wahl darstellen. Es liegt an Ihnen, welcher Turm und welcher leere Raum gemeint ist.
Ausgabe: Eine nicht negative Ganzzahl. Ganzzahlige Posen sind auch in Ordnung.
Testfälle
Die Ausgabe ist die Zahl auf der linken Seite.
6 .R..RRR.
0 .
0 R
4 R..RR
3 ...R
8 ..R..R..
0 ......
Für weitere Testfälle sind hier alle Eingaben bis Länge 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