[白駿16120]PPAP
PPAP 16120
を選択します.
スタックを利用した草はなかなかすぐには浮かばないようです.スタックを利用して簡単に解くことができます.
問題のルールは
入力文字列は最初から
演算の最後の結果が
を選択します.
스택
자료구조
に答えるスタックを利用した草はなかなかすぐには浮かばないようです.スタックを利用して簡単に解くことができます.
問題のルールは
p
から始まり、p
->ppap
変換中に生成されたすべての文字列をppap
文字列として定義します.p
度ppap
文字列入力文字列は最初から
stack
に、大きさが4より大きい場合は4個取り出してppap
、ppap
であればp
に変換してstack
に入れる.演算の最後の結果が
p
である場合、出力PPAP
またはNP
コード#コード##include <bits/stdc++.h>
using namespace std;
string str;
vector<char> v;
int main() {
cin.tie(0); cout.tie(0); ios_base::sync_with_stdio(false);
cin >> str;
v.push_back(str[0]);
for (int i = 1; i <= str.size(); i++) {
while (v.size() >= 4) {
char a = v.back(); v.pop_back();
char b = v.back(); v.pop_back();
char c = v.back(); v.pop_back();
char d = v.back(); v.pop_back();
if (d == 'P' && c == 'P' && b == 'A' && a == 'P') {
v.push_back('P');
}
else {
v.push_back(d); v.push_back(c); v.push_back(b); v.push_back(a);
break;
}
}
if (i == str.size()) break;
v.push_back(str[i]);
}
if (v.size() == 1 && v[0] == 'P') cout << "PPAP";
else cout << "NP";
return 0;
}
Reference
この問題について([白駿16120]PPAP), 我々は、より多くの情報をここで見つけました https://velog.io/@asdsa2134/백준-16120-PPAPテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol