NC15029 吐泡泡 栈 暴力模拟

吐泡泡

http://www.nowcoder.com/questionTerminal/f86fa2221c094b3d8d1fc79bae450d96

很容易想到栈

多组数据 !!! !!!

扫描整个字符串

  • 当栈空,则入栈
  • 循环如下 : 当栈顶和相等
    • 两个都是大写'O'就什么也不做,并
    • 两个都是小写'o'就不要,并把设置成大写'O'
string stk;
for(int i=0; i<n; ) { //注意这里不要i++
    if(!stk.empty() && str[i]=='o' && str[i]==TOP) {
        stk.pop_back();
        str[i] = 'O'; //把当前的'o'修改成大写'O'
    } else if(!stk.empty() && str[i]=='O' && str[i]==TOP) {
        stk.pop_back();
        i ++;
    } else {
        stk.push_back(str[i]);
        i ++;
    }
}

完整代码如下

#define debug
#ifdef debug
#include <time.h>
#include "/home/majiao/mb.h"
#endif

#include <iostream>
#include <algorithm>
#include <vector>
#include <string.h>
#include <map>
#include <set>
#include <stack>
#include <queue>
#include <math.h>

#define MAXN ((int)1e5+7)
#define ll long long int
#define INF (0x7f7f7f7f)
#define fori(lef, rig) for(int i=lef; i<=rig; i++)
#define forj(lef, rig) for(int j=lef; j<=rig; j++)
#define fork(lef, rig) for(int k=lef; k<=rig; k++)
#define QAQ (0)

using namespace std;

#ifdef debug
#define show(x...) \
do { \
    cout << "\033[31;1m " << #x << " -> "; \
    err(x); \
} while (0)

void err() { cout << "\033[39;0m" << endl; }
template<typename T, typename... A>
void err(T a, A... x) { cout << a << ' '; err(x...); }
#endif

#ifndef debug
namespace FIO {
    template <typename T>
    void read(T& x) {
        int f = 1; x = 0;
        char ch = getchar();

        while (ch < '0' || ch > '9') 
            { if (ch == '-') f = -1; ch = getchar(); }
        while (ch >= '0' && ch <= '9') 
            { x = x * 10 + ch - '0'; ch = getchar(); }
        x *= f;
    }
};
using namespace FIO;
#endif


int n, m, Q, K;

#define TOP (stk.back())

int main() {
#ifdef debug
    freopen("test", "r", stdin);
    clock_t stime = clock();
#endif

    string str;
    while(cin >> str) {
        n = (int)str.length();
        string stk;
        for(int i=0; i<n; ) {
            if(!stk.empty() && str[i]=='o' && str[i]==TOP) {
                stk.pop_back();
                str[i] = 'O';
            } else if(!stk.empty() && str[i]=='O' && str[i]==TOP) {
                stk.pop_back();
                i ++;
            } else {
                stk.push_back(str[i]);
                i ++;
            }
        }
        cout << stk << endl;
    }



#ifdef debug
    clock_t etime = clock();
    printf("rum time: %lf 秒\n",(double) (etime-stime)/CLOCKS_PER_SEC);
#endif 
    return 0;
}




全部评论

相关推荐

01-30 22:03
门头沟学院 Java
用微笑面对困难:我滴妈,【俩月】【实习】【主管】仨debuff吃满了,独立设计开发的项目写了绝大占比的运营板块,你独立开发,那维护、问题复盘、日志更新、bug、策划书全是自己整的? 不建议写那么大,可以从小出发更容易
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
正在热议
更多
# AI面会问哪些问题? #
24795次浏览 487人参与
# 中国电信笔试 #
31074次浏览 283人参与
# 开放七大实习专项,百度暑期实习值得冲吗 #
14124次浏览 209人参与
# 你的实习产出是真实的还是包装的? #
18763次浏览 330人参与
# 如果秋招能重来,我会____ #
96688次浏览 500人参与
# 春招至今,你的战绩如何? #
59824次浏览 542人参与
# 厦门银行科技岗值不值得投 #
7476次浏览 186人参与
# i人适合做什么工作 #
36910次浏览 124人参与
# 我是面试官,请用一句话让我破防 #
79509次浏览 219人参与
# 哪些公司真双非友好? #
69197次浏览 287人参与
# 金三银四,你的春招进行到哪个阶段了? #
21557次浏览 277人参与
# 找AI工作可以去哪些公司? #
7667次浏览 184人参与
# 从事AI岗需要掌握哪些技术栈? #
7651次浏览 248人参与
# 投递几十家公司,到现在0offer,大家都一样吗 #
339898次浏览 2165人参与
# 面试尴尬现场 #
220753次浏览 861人参与
# 五一之后,实习真的很难找吗? #
102797次浏览 584人参与
# 你做过最难的笔试是哪家公司 #
30037次浏览 189人参与
# 你小时候最想从事什么职业 #
159838次浏览 2072人参与
# 应届生第一份工资要多少合适 #
20479次浏览 84人参与
# 阿里笔试 #
176408次浏览 1302人参与
# 一张图晒出你司的标语 #
3813次浏览 72人参与
# 面试被问期望薪资时该如何回答 #
382457次浏览 2163人参与
牛客网
牛客网在线编程
牛客网题解
牛客企业服务