pannenkoek2012的目标是通过尽可能少地按A按钮来完成Super Mario 64,这会使Mario跳跃。每个“印刷机”都由三个部分组成:
- 按下按钮
- 持有任何时间
- 发布
请观看此视频(1:15-3:23),以获取包含上述图片的精彩说明。(但是,此挑战将不使用半按A术语,并且会提出需要释放A的障碍。)
任务:
给定一系列需要按下(P),按住(H)或释放(R)A按钮的障碍物,请按给定的顺序输出克服这些障碍物所需的最少按下次数。最初不按住A按钮。
正式表示:给定一个字符串S,将包含S PHR
的形式的字符串(PH*R)*
视为子序列,并P
在这样的字符串中输出尽可能少的。或者,找到P?H*R?
可以拆分为S 的形式的最小块数。
例
让我们看一下input RHRPHHHR
。A按钮开始时没有保持R
住,因此要克服初始障碍,需要先按下按钮,然后再松开(按#1)。接下来,我们需要按住按钮H
,这又需要首先将其按下(按#2)。然后,可以随后将其释放以满足R
其需求。最后,PHHHR
只需按一下(按#3键),然后按住HHH
并松开,即可满足其余条件R
。因此,输出计数为3。
另一种查看方式是,我们可以将输入字符串分成3个形式的部分,PHH..HHR
其中字母可以省略。
R
HR
PHHHR
输入格式
输入将是表示按下,按住和释放的元素的列表或字符串,以供您选择:
P, H, R
p, h, r
1, 2, 3
0, 1, 2
按照给定的顺序进行匹配。输入将不为空。
测试用例:
P 1
H 1
R 1
HP 2
RHP 3
HHR 1
PHRH 2
RHRPHHHR 3
HHHHHH 1
PPRRHHPP 6
HPPRHRPRHPPRHPPHRP 12
PRHRHPHHPRRRHPPRHHPPRRRHRHPRPHPRPRHHRPPPRHPRP 28
排行榜: