吐泡泡

吐泡泡

注意把栈顶弹出后还需要特判

#include <iostream>
#include <algorithm>
#include <cstring>
#include <stack>
 
using namespace std;
 
string s
stack<char> stk;
 
int main()
{ 
    while(cin >> a + 1)
    {
        for(int i = 0; i < s.size() ; i ++ )
        {
            //如果栈空或者两个泡泡不一样就直接进栈
            if(stk.empty() || s[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(s[i] == 'O' && stk.top() == 'O') stk.pop();//两个O就会宝典
        }    
 
        string t = "";
        while(!stk.empty())
        {
            t = stk.top() + t;
            stk.pop();
        }
        cout << t << endl;
    }
     
    return 0;
}
全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务