题解 | #好串#

好串

https://ac.nowcoder.com/acm/problem/21874

初学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";

}

全部评论
有堆栈溢出的问题。
点赞 回复 分享
发布于 2025-07-07 10:43 湖北

相关推荐

评论
1
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务