首页 > 试题广场 >

好串

[编程题]好串
  • 热度指数:435 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}牛牛喜欢跟字符串玩耍,他学会了一种新操作:在当前字符串中任意位置(包括开头和结尾)插入子串 "ab"。

\hspace{15pt}牛牛称一个字符串为好串,当且仅当它可以通过若干次上述操作从空串生成。

\hspace{15pt}例如,`ab`、`aabb`、`aababb` 都是好串,而 `aab`、`ba`、`abbb` 不是好串。

\hspace{15pt}现给定一个字符串 `s`,请判断 `s` 是否是好串。

输入描述:
\hspace{15pt}在一行中输入一个字符串 `s`,仅由小写字母组成,长度满足 1 \leqq |s| \leqq 10^5


输出描述:
\hspace{15pt}如果 `s` 是好串,输出 `Good`;否则输出 `Bad`。
示例1

输入

ab

输出

Good

说明

初始空串,插入一次 "ab" 即可得到 "ab"。
示例2

输入

aab

输出

Bad

说明

无法通过插入 "ab" 操作得到 "aab"。
示例3

输入

abaababababbaabbaaaabaababaabbabaaabbbbbbbb

输出

Bad

备注:

头像 Lausaku
发表于 2021-03-31 19:52:06
题目见描述思路:考察了对栈的理解运用:只要遇到a就入栈,遇到b就让a出栈,如果此时出现栈空则返回false,最后检查一下如果栈不为空也返回false代码: #include <iostream> #include <stack> #include <algorithm& 展开全文
头像 活泼泼
发表于 2021-04-15 23:05:02
可以把a看成左括号,b看成右括号,这样判断是否为好串就能转化成括号匹配问题方法一:开栈。碰到左括号就入栈,右括号就出栈,使左右括号对应匹配,若有一次栈空(即左括号不够)但还有右括号,则右括号多了,不是好串。最终只要栈空,就是好串,否则不是好串方法二:计数。本题中只有一种括号,因此无需开栈,只需要记录 展开全文
头像 阿道夫_
发表于 2021-11-14 18:52:03
给个C语言的代码吧! ">int main() { char arr[55]; gets(arr); int i=0,sum=0; for(i=0;arr[i]!='\0';i++) { if(arr[i]=='a') sum++; else sum--; if(s 展开全文
头像 Bailongma
发表于 2020-05-24 21:03:32
#include<iostream> #include<string> using namespace std; int main() { string s; cin>>s; int len=s.length(); int su 展开全文
头像 MedicineCliff
发表于 2024-03-10 10:30:27
初学stl 第一次解决栈相关的问题 写题解防止遗忘 #include<bits/stdc++.h> using namespace std; int main() { string s; cin>>s; stack<char>stk;//构建stack容器 int 展开全文
头像 ciallobit
发表于 2025-05-31 17:05:32
def main(): s = input() st = 0 n = len(s) for i in range(n): if s[i] == 'a': st += 1 elif s[i] == 'b': 展开全文
头像 爱读书的菠萝蜜很想去杭州
发表于 2025-06-10 20:57:39
s = input() while s.find('ab')!=-1: s = s.replace('ab','') if len(s) != 0: print('Bad') else: print('Good')
头像 sunny_forever
发表于 2021-08-04 18:57:34
转化为:括号匹配 Code #include <bits/stdc++.h> using namespace std; const int N = 100; char s[N]; int main(){ cin>>s+1; int d=0; bool 展开全文
头像 GB279824
发表于 2025-06-09 22:35:52
class Stack: def __init__(self) -> None: self.items = [] def push(self,x): self.items.append(x) def pop(self): 展开全文
头像 Acaibird
发表于 2022-10-09 22:48:37
//#include <bits/stdc++.h> #include <cassert> #include <cctype> #include <cerrno> #include <cfloat> #include <ciso646 展开全文

问题信息

上传者:牛客301599号
难度:
1条回答 30浏览

热门推荐

通过挑战的用户

查看代码
好串