2018年全国多校算法寒假训练营练习比赛(第二场)A 吐泡泡 【模拟】
2018-01-28 16:55
453 查看
题目描述
小鱼儿吐泡泡,嘟嘟嘟冒出来。小鱼儿会吐出两种泡泡:大泡泡”O”,小泡泡”o”。两个相邻的小泡泡会融成一个大泡泡,两个相邻的大泡泡会爆掉。
(是的你没看错,小气泡和大气泡不会产生任何变化的,原因我也不知道。)
例如:ooOOoooO经过一段时间以后会变成oO。
输入描述:
数据有多组,处理到文件结束。每组输入包含一行仅有’O’与’o’组成的字符串。
输出描述:
每组输出仅包含一行,输出一行字符串代表小鱼儿吐出的泡泡经过融合以后所剩余的泡泡。示例1
输入
ooOOoooO输出
oO说明
自左到右进行合并备注:
对于100%的数据,
字符串的长度不超过100。
题意: 略
分析: 看到范围很小,直接vector模拟,这里用到了 vector中的 pop_back()操作,还挺方便的,当然也可以用栈或其他的数据结构都行
参考代码
#include<bits/stdc++.h> using namespace std; vector<char> a; void check() { while (a.size() >= 2) { int len = a.size() - 1; if(a[len] != a[len - 1]) break; if(a[len] == 'O') { a.pop_back(); a.pop_back(); } else { a.pop_back(); a.pop_back(); a.push_back('O'); } } } int main(){ ios_base::sync_with_stdio(0); init(); string s; while(cin>>s) { a.clear(); for(int i = 0;i < s.size();i++) { a.push_back(s[i]); check(); } for(int i = 0;i < a.size();i++) cout<<a[i]; cout<<endl; } return 0; }
如有错误或遗漏,请私聊下UP,thx
相关文章推荐
- 2018年全国多校算法寒假训练营练习比赛(第二场) A 吐泡泡(模拟)
- 2018年全国多校算法寒假训练营练习比赛(第二场) A 吐泡泡(模拟)
- 2018年全国多校算法寒假训练营练习比赛(第二场) A 吐泡泡(模拟)
- 2018年全国多校算法寒假训练营练习比赛(第二场) A 吐泡泡(模拟)
- 2018年全国多校算法寒假训练营练习比赛(第二场) A 吐泡泡(模拟)
- 2018年全国多校算法寒假训练营练习比赛(第二场) A 吐泡泡(模拟)
- 2018年全国多校算法寒假训练营练习比赛(第二场) A 吐泡泡(模拟)
- 2018年全国多校算法寒假训练营练习比赛(第二场) A 吐泡泡(模拟)
- 牛客网NowCoder 2018年全国多校算法寒假训练营练习比赛(第二场)A.吐泡泡(stack) B.TaoTao要吃鸡(动态规划01背包) D.YB要打炉石(最长上升子序列) E.小G有一个大树(树的重心) G.送分了QAQ H.了断局(递推)
- 动态规划-背包的基础上进行模拟 2018年全国多校算法寒假训练营练习比赛(第二场)牛客网B题
- 2018年全国多校算法寒假训练营练习比赛(第二场)A 吐泡泡
- 2018年全国多校算法寒假训练营练习比赛(第二场)A 吐泡泡
- 2018年全国多校算法寒假训练营练习比赛(第二场)A.吐泡泡
- 2018年全国多校算法寒假训练营练习比赛(第二场) D YB要打炉石 【最长非递减子序列】
- 2018年全国多校算法寒假训练营练习比赛(第二场) B-TaoTao要吃鸡
- 2018年全国多校算法寒假训练营练习比赛(第二场) B TaoTao要吃鸡 (0 1背包 特殊处理一个物品)
- 2018年全国多校算法寒假训练营练习比赛(第二场) E 小G有一个大树(树状DP 未解决)
- 2018年全国多校算法寒假训练营练习比赛(第二场)
- 2018年全国多校算法寒假训练营练习比赛(第二场) B TaoTao要吃鸡【01背包 + 贪心】
- 2018年全国多校算法寒假训练营练习比赛(第二场) A题吐泡泡 题解