题解|好串

由于题目链接无法解析,我直接截图

此题要求我们判断字符串是否由 ab 插入操作得到的

根据要求,我们可以发现:一个符合条件的好串,其 a 的数量和 b 的数量绝对是一一对应的,且在一一对应的 ab 对里,a 在前,b 在后。

那么我们可以用一个栈,遍历字符串时,遇到 a 则入栈,遇到 b 则出栈。

如果出栈时,发现栈为空,那么

1. b的数量大于 a 的数量,不是好串

2. b 在前,a 在后,不是好串

如果遍历完成后,发现栈非空,那么

3. a 的数量大于 b 的数量,不是好串。

此外的,都是符合条件的好串。

整体代码如下:

#include<iostream>
#include<algorithm>
#include<vector>
#include<stack>
#include<queue>
#include<deque>
#include<cmath>
#include<string>
using namespace std;

int main(){
    string s;
    cin>>s;
    stack<char> a;
    
    for(char ch:s){
        if(ch=='a') a.push(ch);
        else{
            if(a.empty()){	//要出栈时,发现a为空,不是好串
                cout<<"Bad";
                return 0;
            }
            else a.pop();
        }
    }
    if(a.empty()) cout<<"Good";	//遍历后发现a不为空,不是好串
    else cout<<"Bad";
    return 0;
}

全部评论

相关推荐

当涉及前端代码的部署流程时,通常有几个关键步骤需要遵循:https://www.nowcoder.com/issue/tutorial?zhuanlanId=Mg58Em&amp;uuid=07d53be4cd034a4ab270d500feebcc8d代码开发:前端开发人员使用各种技术和工具(如HTML、CSS、JavaScript)创建网站或应用程序的用户界面。他们编写代码并进行调试以确保其功能正常。版本控制:采用版本控制工具(如Git)管理前端代码的版本。这有助于团队成员之间协同工作、追踪更改和恢复到以前的版本。构建:在将代码部署到生产环境之前,通常需要进行构建。这涉及将多个源代码文件合并、压缩和优化,以提高性能并减少加载时间。构建过程可以使用工具如Webpack、Grunt或Gulp来完成。测试:在部署前,进行测试是至关重要的。测试可以包括单元测试、集成测试和端到端测试,以确保代码在各种浏览器和设备上的适配性和可靠性。部署:完成构建和测试后,将代码部署到服务器或托管平台上。这可以通过FTP上传文件,使用命令行工具(如SSH)远程连接服务器或使用自动化部署工具(如Jenkins、Travis&nbsp;CI)来完成。监控和维护:一旦部署完成,需要监控前端应用程序的性能和可用性。这可以使用工具如Google&nbsp;Analytics、New&nbsp;Relic等来实现。同时,如果需要进行更新或修复,可以重复前述步骤。以上是一个基本的前端代码部署流程。具体的步骤和工具可能因团队的需求和工作流程而有所不同。
校招求职吐槽
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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