首页 > 试题广场 >

好串

[编程题]好串
  • 热度指数: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

备注:

s = input()
stack = [0]
for i in s:
    if i=="a":
        stack.append(i)
    elif i=="b":
        if stack[-1]=="a":
            stack.pop()
        else:
            print("Bad")
            exit(0)
if stack[-1]==0:
    print("Good")
else:
    print("Bad")

#括号匹配的变形 :1

发表于 今天 01:28:41 回复(0)

问题信息

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

热门推荐

通过挑战的用户

查看代码
好串