给定一个具有一排车行和/或空白空间的位置,输出可能有多少个不同的车行移动。一个新车可以向左或向右移动到一个空白处,但不能移到需要越过另一个新车的地方。当一个新手移动时,其他新手保持在原位。
例如,从该位置开始,可以进行6次移动:
.R..RRR.
- 第一个(最左侧)菜鸟可以向左移动1个空间,或者向右移动1或2个空间(3个移动)
- 下一个车队只能向左移动1或2个空格(2个移动)
- 第三只车根本无法移动,因为它被挤压在另外两个新车之间(0步)
- 最后一个小车只能向右移动1个空格(移动1个空格)
请注意,一个职位可能根本没有白痴,或者根本没有空白。
输入:白名单和空白区域的非空列表(字符串,数组等)。您可以将它们表示为True
/ False
,1
/ 0
,'R'
/ '.'
或任意两个一致的不同单字节字符或您选择的一位数字。由您决定,哪一个表示新手,哪一个表示空白。
输出:一个非负整数。整数浮点数也可以。
测试用例
输出是左侧的数字。
6 .R..RRR.
0 .
0 R
4 R..RR
3 ...R
8 ..R..R..
0 ......
对于更多的测试用例,以下是所有输入,最长为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