博客
关于我
吐泡泡(栈)
阅读量:344 次
发布时间:2019-03-04

本文共 1291 字,大约阅读时间需要 4 分钟。

问题链接https://ac.nowcoder.com/acm/problem/15029

#include<bits/stdc++.h>using namespace std;int main(){       char p[120];    while(cin>>p){           int l=strlen(p);        stack<char> a;        for(int i=0;i<l;i++){               if(a.empty()){                   a.push(p[i]);            }else{                   if(a.top()=='O'&&p[i]=='O'){                       a.pop();                }                else if(a.top()=='o'&&p[i]=='o'){                       a.pop();                    if(!a.empty()&&a.top()=='O'){                           a.pop();                    }else{                           a.push('O');                    }                }                else{                       a.push(p[i]);                }            }        }        char k[120];        int t=0;        while(!a.empty()){               k[t++]=a.top();            a.pop();        }        for(int i=t-1;i>=0;i--){               cout<<k[i];        }        cout<<endl;    }    return 0;}

想整理的几点:
1.对于一个字符串的输入输出
char型可以直接用cin cout,也可以用gets();string用getline(cin,a);
2.对于stl中栈的简单应用 stack a;

  1. a.push() 入栈,将元素加到栈顶
  2. a.top() 返回栈顶元素
  3. a.pop() 删除栈顶元素,不返回
  4. a.empty() 判断栈中是否为空,为空返回true
  5. a.size() 返回栈中元素的个数

对于题目,就是将oO气泡输入进数组,然后通过入栈出栈的操作,如果是两个小气泡,就合成大气泡,再在栈顶调出一个元素继续判断是不是大气泡,如果是就破掉。同理判断到两个大气泡直接破掉。最后再用数组完成一次倒序,把栈底变成序列首。

转载地址:http://nqdr.baihongyu.com/

你可能感兴趣的文章
Python爬虫学习
查看>>
数据库系统概论:ER图设计
查看>>
AC自动机 - Word Puzzles - POJ - 1204
查看>>
DIJ - 昂贵的聘礼 - POJ 1062
查看>>
DIJ + Topsort + DFS - Roads and Planes G(道路与航线) - 洛谷 P3008
查看>>
Prim / Kruskal - 局域网 - 洛谷 P2820
查看>>
Tarjan(割点) - Electricity - POJ 2117
查看>>
线性筛 + 埃式筛 (筛区间质数) - Prime Distance - POJ 2689
查看>>
快速幂 - 序列的第k个数 - AcWing 1289
查看>>
计算几何(旁切圆) - Ex-circles - UVA 11731
查看>>
DP - Tickets - HDU - 1260
查看>>
图数据结构以及深度、广度遍历方式
查看>>
phpStudy for Linux (lnmp+lamp一键安装包)
查看>>
Session的load和get的区别,get方法影响效率
查看>>
【安卓学习笔记】JAVA基础Lesson9-对象的转型
查看>>
JS保留字和关键字
查看>>
本校暑假训练营11_Python数据分析入门7-网络1
查看>>
本校暑假训练营12_Python数据分析入门7-网络2
查看>>
网络安全学习篇50_第四阶段_SSRF
查看>>
数据库SQL实战3_获取所有非manager的员工emp_no
查看>>