吐泡泡

#include <iostream>
#include <algorithm>
#include <cstring>
#include <stack>

using namespace std;

char a[110];
stack<char> stk;

int main()
{ 
    while(cin >> a + 1)
    {
        for(int i = 1; i <= strlen(a + 1); i ++)
        {
            //如果栈空或者两个泡泡不一样就直接进栈
            if(stk.empty() || a[i] != stk.top()) stk.push(a[i]);       
            else if(a[i] == 'o' && stk.top() == 'o')//合并两个o
            {
                stk.pop();
                if(stk.empty() || stk.top() != 'O') stk.push('O');//上一个泡泡不能也是O才能插入
                else if(stk.top() == 'O') stk.pop();//上一个是O就爆掉
            }
            else if(a[i] == 'O' && stk.top() == 'O') stk.pop();//两个O就会宝典
        }    

        string s = "";
        while(!stk.empty())
        {
            s += stk.top();
            stk.pop();
        }
        reverse(s.begin(), s.end());//逆序输出
        cout << s << endl;
    }
    
    return 0;
}