初学stl 第一次解决栈相关的问题 写题解防止遗忘

#include<bits/stdc++.h>

using namespace std;

int main() {

string s;
cin>>s;
stack<char>stk;//构建stack容器
int i;
int flag=1;
for(i=0;i<s.size();i++)
{
    if(s[i]=='a') stk.push(s[i]);//使a入栈
    else
    {
        if(stk.empty())//s[i]为b时判断是否有a 若没有则直接break————防止出现abbb类的串
        {
           flag=0;
            break;
        }
        stk.pop();//遇见b可以使最顶上的a弹出
    }
}
if(!stk.empty()) flag=0;//再次判断是否有未匹配的a即防止aab类字符串出现
if(flag) cout<<"Good";
    else cout<<"Bad";

}