ABC283のD問題 Scope の解説です。
コード
#include<bits/stdc++.h>
using namespace std;
int main() {
string s;
cin >> s;
stack sta;
map chars;
sta.push("");
for (auto c : s) {
if (c == '(') {
sta.push("");
} else if (c == ')') {
string now = sta.top();
sta.pop();
for (auto cn : now) {
chars[cn]--;
}
} else {
if (chars[c] >= 1) {
cout << "No" << endl;
return 0;
}
sta.top() += c;
chars[c]++;
}
}
cout << "Yes" << endl;
return 0;
}
解説動画リンク
解説動画はこちらです。
コメント