主要是要注意是多组输入,其次就是要小心越界 我这里是手写的栈

#include<iostream>
#include<queue>
using namespace std;
const int N=110;
string str;
int main()
{
    while(cin>>str){
    char s[N];
    int top=-1;
    for(int i=0;i<str.length();i++)
    {
        if(top!=-1&&s[top]=='o'&&str[i]=='o')
        {
            top--;
            if(top!=-1&&s[top]=='O')
                top--;
            else
                s[++top]='O';
        }
        else if(top!=-1&&s[top]=='O'&&str[i]=='O')
            top--;
        else
            s[++top]=str[i];
    }
    for(int i=0;i<=top;i++)
        cout<<s[i];
    cout<<endl;
    }
    return 0;
}