牛客练习——吐泡泡(简单的栈的运用题:别被多组输入恶心到了)

Posted C+++++++++++++++++++

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了牛客练习——吐泡泡(简单的栈的运用题:别被多组输入恶心到了)相关的知识,希望对你有一定的参考价值。

题目

题目链接

题目解析

这是一道基础的不能再基础的栈的运用题,硬是被牛客的多组输入恶心到了!!!

具体就是入栈出栈,然后处理栈中元素即可。

直接上代码应该就能秒懂。

解题代码

#include<bits/stdc++.h>

using namespace std;
string St;
//TODO 当两个o融为O时会出现额外的消除情况
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;

以上是关于牛客练习——吐泡泡(简单的栈的运用题:别被多组输入恶心到了)的主要内容,如果未能解决你的问题,请参考以下文章

2018年全国多校算法寒假训练营练习比赛(第二场)A.吐泡泡

题集牛客网·2018年全国多校算法寒假训练营练习比赛(第二场)

NC15029 吐泡泡

NC15029 吐泡泡

吐泡泡(2018年全国多校算法寒假训练营练习比赛(第二场)+栈模拟)+Plug-in(codeforces81A+栈模拟)

洛谷 P2171 Hz吐泡泡