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