pannenkoek2012は、Aボタンをできるだけ押すだけでスーパーマリオ64を完成させ、マリオをジャンプさせます。各「A press」は3つの部分で構成されています。
- ボタンを押す
- いつでもそれを保持する
- リリースする
上記の画像を含む優れた説明については、このビデオ(1:15-3:23)を参照してください。(ただし、このチャレンジでは、半押しプレスの用語は使用されず、Aをリリースする必要がある障害が想定されます。)
仕事:
Aボタンを押す(P)、ホールドする(H)、または放す(R)必要がある一連の障害物がある場合、それらの障害物を指定された順序で克服するために必要な最小のプレス数を出力します。Aボタンは最初は保持されていません。
形式的に記述:文字の文字列Sが与えられた場合、サブシーケンスとしてSを含むPHR
形式の文字列を考慮し、そのような文字列のの(PH*R)*
最小数を出力しP
ます。または、P?H*R?
Sを分割できる形式のチャンクの最小数を見つけます。
例
inputを見てみましょうRHRPHHHR
。Aボタンは開始されないため、最初の障害を克服するにR
は、ボタンを押してから離す必要があります(#1を押します)。次に、ボタンを保持する必要がありますH
。この場合も、最初にボタンを押す必要があります(#2を押します)。その後、その後にリリースして、その後を満たすことができR
ます。最後に、PHHHR
1回押す(#3を押す)に続いてを押しHHH
て放すと、残りが満たされR
ます。したがって、出力カウントは3です。
もう1つの見方は、入力文字列を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
リーダーボード: