题解 | 好串
好串
https://www.nowcoder.com/practice/9b072237ebdd4dd99562f01cbf594fac
#include<bits/stdc++.h>
using namespace std;
stack<char>sk;
bool solve(string s) {
if (s[0] == 'b') return false;
for (int i = 0; i < s.size(); i++) {
if (sk.empty() && s[i] != 'b') {
sk.push(s[i]);
} else if (sk.empty() && s[i] == 'b') {
return false;
} else {
if (s[i] == 'a' && sk.top() == 'b') {
sk.pop();
} else if (s[i] == 'a' && sk.top() == 'a') {
sk.push(s[i]);
} else if (s[i] == 'b' && sk.top() == 'a') {
sk.pop();
} else {
sk.push(s[i]);
}
}
}
if (sk.empty()) {
return true;
} else {
return false;
}
}
int main() {
string s;
cin >> s;
if (solve(s) == true) {
cout << "Good";
} else {
cout << "Bad";
}
return 0;
}