题解 | 吐泡泡
吐泡泡
https://www.nowcoder.com/practice/f86fa2221c094b3d8d1fc79bae450d96?tpId=383&tags=&title=&difficulty=0&judgeStatus=0&rp=0&sourceUrl=%2Fexam%2Foj
#include <iostream>
#include <stack>
using namespace std;
void output(string str)
{
stack<char> ch;
for(int i =0;i<str.size();i++)
{
if((str[i]=='o')&&(ch.empty()==true))
{
ch.push(str[i]);
}
else if((str[i]=='o')&&(ch.empty()!=true))
{
if(ch.top()=='o')
{
ch.pop();
if(ch.empty()!=true)
{
if(ch.top()=='O')
ch.pop();
else
ch.push('O');
}
else
{
ch.push('O');
}
}
else
{
ch.push(str[i]);
}
}
else if((str[i]=='O')&&(ch.empty()==true))
{
ch.push(str[i]);
}
else if((str[i]=='O')&&(ch.empty()!=true))
{
if(ch.top()=='O')
{
ch.pop();
}
else
{
ch.push(str[i]);
}
}
else
{
}
}
stack<char> res;
while(ch.empty()!=true)
{
res.push(ch.top());
ch.pop();
}
while(res.empty()!=true)
{
cout<<res.top();
res.pop();
}
cout<<endl;
}
int main() {
string str;
int loop;
cin>>loop;
while(loop--)
{
cin>>str;
output(str);
}
}
// 64 位输出请用 printf("%lld")
查看13道真题和解析