题目

链接:https://ac.nowcoder.com/acm/contest/28537/C
来源:牛客网

时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld

题目描述

牛牛喜欢跟字符串玩耍,他刚刚学会了一个新操作,将一个字符串x插入另一个字符串y中(包括放在开头和结尾)
牛牛认为如果一个串是好的当这个串能按照如下方法被构造出来:
一开始,有一个空串,然后执行0次或者若干次操作,每次操作将ab插入当前的字符串

根据上面的定义,ab, aabb, aababb都是好串,aab,ba,abbb并不是好串

现在给你一个字符串s,判断s是否是好串

输入描述:

输入一行包含一个字符串,长度不超过50

输出描述:

输出"Good" 或者 "Bad"

示例1

输入

ab

输出

Good

示例2

输入

aab

输出

Bad

示例3

输入

abaababababbaabbaaaabaababaabbabaaabbbbbbbb

输出

Bad

备注:

子任务1:n <= 10
子任务2:n <= 20
子任务3:无限制

题解

这道题目可以转化为括号匹配类型的题目

在括号匹配类型的题目中,对所有左括号进行入栈,如果遇到右括号,(1.栈不为空 2.该右括号与栈顶的左括号匹配)则出栈,否则就不匹配.

最后再看栈是不是为空,如果为空,那么就是正确的

在这里由于都是一种括号,所以没有必要使用栈,所以在这里我使用了cnt计数的方法.

代码

#include <cstring>
#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int cnt = 0;
char s[60] = { 0 };
cin >> s;
int lenth = strlen(s);
for (int i = 0; i < lenth; i++)
{
if (s[i] == 'a')
cnt++;
else if(s[i] == 'b')
{
cnt--;
}
if (cnt < 0)
{
cout << "Bad";
return 0;
}
}
if (cnt != 0)
cout << "Bad";
else
cout << "Good";
return 0;
}

最新文章

  1. tmp
  2. August 7th 2016, Week 33rd Sunday
  3. CoffeeScript及相关文本标记语言
  4. Swift动画编程指南-02 Swift动画是怎么炼成的
  5. CSS超出2行省略号
  6. ListView滑动不爽,滚动一页得滑几次?该用分页列表啦!
  7. [原]unity中WWW isDone方法只能在主线程中调用
  8. loadrunner_Controller技巧_overlay
  9. 修改mysql 数据库密码
  10. HDU 1078 FatMouse and Cheese (记忆化搜索+dp)
  11. mysql source命令导入sql文件效率分析和索引整理
  12. python学习day8
  13. iOS-打电话、发短信、发邮件【指定QQ用户发送QQ消息】
  14. 一张图片快速明白Python概述
  15. Ubuntu12.04 LTS 32位 安装ns-2.35
  16. docker --Nexus仓库
  17. android studio 使用总结
  18. C++用new来创建对象和非new来创建对象的区别
  19. 4.keras实现--&gt;生成式深度学习之DeepDream
  20. python 日期时间处理

热门文章

  1. 基于Docker&Kubernetes构建PaaS平台基础知识梳理
  2. CSS常用技术
  3. 并发编程之volatile与JMM多线程内存模型
  4. 力扣算法:LC 704-二分查找,LC 27-移除元素--js
  5. Linux:可执行程序的Shell传参格式规范
  6. Git分离头指针
  7. 2020级cpp上机考试题解#B卷
  8. MySQL之事务和redo日志
  9. 服务器安装mysql遇到的坑
  10. JAVA - 请说明”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法?