链接:登录—专业IT笔试面试备考平台_牛客网
来源:牛客网
题目描述
牛牛喜欢跟字符串玩耍,他刚刚学会了一个新操作,将一个字符串x插入另一个字符串y中(包括放在开头和结尾)
牛牛认为如果一个串是好的当这个串能按照如下方法被构造出来:
一开始,有一个空串,然后执行0次或者若干次操作,每次操作将ab插入当前的字符串
根据上面的定义,ab, aabb, aababb都是好串,aab,ba,abbb并不是好串
现在给你一个字符串s,判断s是否是好串
输入描述:
输入一行包含一个字符串,长度不超过50
输出描述:
输出"Good" 或者 "Bad"
示例1
输入
复制ab
ab
输出
复制Good
Good
示例2
输入
复制aab
aab
输出
复制Bad
Bad
示例3
输入
复制abaababababbaabbaaaabaababaabbabaaabbbbbbbb
abaababababbaabbaaaabaababaabbabaaabbbbbbbb
输出
复制Bad
Bad
思路
在给定的字符串里找子串“ab”,每次找到则在给定字符串里删除“ab”,找不到则不是好串,找到则继续,直到该字符串中只剩下两个以下的字符,若此时该字符串为“ab”则是好串,不为“ab”则不是好串
#include <bits/stdc++.h>
using namespace std;
int main() {
string a;
cin >> a;
int flag = 1;
while (a.length() > 2) {
if (a.find("ab") != -1) {
a.erase(a.find("ab"), 2);
} else {
flag = 0;
break;
}
}
if (!flag) {
cout << "Bad";
} else {
if (a == "ab")
cout << "Good";
else
cout << "Bad";
}
}