Portal: http://codeforces.com/problemset/problem/190/C

一道卡输入输出的蛋疼题

题意:给你一个由pair和int所组成的沙茶字符串(最大含有1e5个单词),输出合法的pair序列

这道题可以拿栈做,也就是vector或stack

呵呵 (vector==stack)=1

Examples
Input
3
pair pair int int int
Output
pair<pair<int,int>,int>
 #include<iostream>
#include<cstring>
#include<sstream>
#include<vector>
using namespace std;
#define FOR(i,j,k) for(int i=j;i<=k;i++)
#define FORD(i,j,k) for(int i=j;i>=k;i--)
#define maxn 100010
#define SZ(x) int(x.size())
int k;
int a[maxn];
pair<int,int> res[maxn];
vector<int> zz;
string s;
stringstream ss,ans;
void cq(int l)
{
if(a[l])
{
ans<<"pair<";
cq(res[l].first);
ans<<',';
cq(res[l].second);
ans<<'>';
}
else ans<<"int";
return;
}
int main()
{
getline(cin,s);
getline(cin,s);
ss<<s;
while(!ss.eof())
{
ss>>s;
a[++k]=(s=="pair");
}
FORD(i,k,)
{
if(a[i])
{
if(SZ(zz)<)
{
cout<<"Error occurred"<<endl;
return ;
}
res[i].first=zz.back();
zz.pop_back();
res[i].second=zz.back();
zz.pop_back();
}
zz.push_back(i);
}
if(SZ(zz)>) {
cout<<"Error occurred"<<endl;
return ;
}
cq();
cout<<ans.str();
return ;
}

无敌的sstream与蛋疼的getline

然后除了这个反人类的倒着处理我还写了个正着来的

 #include<iostream>
#include<cstring>
#include<sstream>
using namespace std;
#define FOR(i,j,k) for(int i=j;i<=k;i++)
#define FORD(i,j,k) for(int i=j;i>=k;i--)
#define maxn 100010
#define SZ(x) int(x.size())
string s;
stringstream ss,ans;
bool cq()
{
if(ss.eof()) return false;
ss>>s;
if(s=="pair")
{
ans<<"pair<";
if(!cq()) return false;
ans<<',';
if(!cq()) return false;
ans<<'>';
}
else ans<<"int";
return true;
} int main()
{
getline(cin,s);
getline(cin,s);
ss<<s;
if(cq()&&ss.eof()) cout<<ans.str(); else cout<<"Error occurred"<<endl;
return ;
}

爽!

总之就是各种sstream大法好啦~

#include<sstream>
stringstream ss; ss<<s;
ss>>s;
ss.eof()

最新文章

  1. CSS笔记总结
  2. js计时器,点击开始计时,再点击停止
  3. Unity 3D 正交相机(Orthographic)
  4. Ajax提交与传统表单提交的区别说明
  5. CentOS 7 安装 Oracle 11g
  6. elasticsearch知识点
  7. javascript中&amp;&amp;和||的区别
  8. 如何将jsp中&lt;input&gt;设为只读
  9. ajax技术的基本概述
  10. 无缝滚动js (手写通俗易懂)
  11. 瑞柏匡丞谈中国移动app的国际进阶路
  12. springmvc+mybatis如何分层
  13. MongoDB时间处理问题
  14. ms10_046_shortcut_icon_dllloader漏洞利用和ettercap dns欺骗
  15. Memcached的配置,SSH项目中的整合(com.whalin),Memcached工具类,Memcached的代码调用
  16. Django-瀑布流
  17. 【LeetCode每天一题】Rotate List(旋转链表)
  18. android studio 模拟器无法联网的解决方法
  19. MySQL&#160;横向表分区之RANGE分区小结
  20. Windows驱动开发

热门文章

  1. css的相对定位与绝对定位
  2. [LeetCode] 994. Rotting Oranges 腐烂的橘子
  3. Win32 按钮嵌套收不到消息解决记录
  4. 开源字体不香吗?五款 GitHub 上的爆红字体任君选
  5. 添加谷歌拓展程序 vue.js devtools过程中的问题
  6. 高可用Keepalived+LVS搭建流程
  7. 9-4 Vue 缓存和子传副(组件)方法绑定
  8. Spark入门(三)--Spark经典的单词统计
  9. MAC下安装Fiddler抓包工具
  10. 使用MySql对IdentityServer4进行持久化