题目
题目链接
题目解析
这是一道基础的不能再基础的栈的运用题,硬是被牛客的多组输入恶心到了!!!
具体就是入栈出栈,然后处理栈中元素即可。
直接上代码应该就能秒懂。
解题代码
#include<bits/stdc++.h>
using namespace std;
string St;
void solve_O() {
int i = St.size() - 1;
int j = St.size() - 2;
for (; i >= 0 && j >= 0; i -= 2, j -= 2) {
if (St[i] == 'O' && St[i] == St[j])
St.pop_back(), St.pop_back();
else break;
}
}
int main() {
ios::sync_with_stdio(false);
string s;
while (cin >> s) {
for (auto ch:s) {
if (ch == 'o' && !St.empty() && St.back() == 'o') {
St.back() = 'O';
solve_O();
} else if (ch == 'O' && !St.empty() && St.back() == 'O') {
St.pop_back();
} else {
St.push_back(ch);
}
}
cout << St << endl;
St.clear();
}
return 0;
}
|