和括号匹配一样,左括号压栈右括号与栈顶的左括号匹配出栈,如果中间无法与右括号匹配或最后A有剩余,即为Bad。
#include <bits/stdc++.h>
using namespace std;
int main() {
stack<int> st;
string s;
cin>>s;
for (int i=0;i<s.size();i++) {
if (s[i]=='a') {
st.push('a');
} else {
if (st.empty()||st.top()!='a') {
cout<<"Bad"<<endl;
return 0;
}
st.pop();
}
}
if (!st.empty()) {
cout<<"Bad"<<endl;
return 0;
}
cout<<"Good"<<endl;
return 0;
}

京公网安备 11010502036488号