您的位置:首页 > 其它

codeforces 190C STL 字符串处理+栈思想

2016-09-07 01:09 387 查看
给一个pair的嵌套声明去掉标点的字符串,然后让你加上标点使得新的字符串符合语法规则

整体递归的思想,注意要将pair < , >作为一个整体

#include <iostream>
#include <string>
#include <algorithm>
#include <vector>
#include <cmath>
#include <queue>
#include <cstring>
#include <cstdio>
using namespace std;
int n,cnt=0;
string s;
stringstream ss;
bool type[100001];
pair<int,int> a[100001];
int v[100001];
void print(int x)
{
if(a[x].first<0)
{
cout<<"int";
return;
}
cout<<"pair<";
print(a[x].first);
cout<<",";
print(a[x].second);
cout<<">";
return;
}
int main()
{
getline(cin,s);
getline(cin,s);
ss<<s;
for(n=0;!ss.eof();n++)
{
ss>>s;
type
=(s=="pair");
}
for(int i=n-1;i>=0;i--)
{
if(type[i])
{
if(cnt<2)
{
cout<<"Error occurred";
return 0;
}
a[i]=make_pair(v[cnt-1],v[cnt-2]);
cnt-=2;
}
else
a[i]=make_pair(-1,-1);
v[cnt++]=i;
}
if(cnt>1)
{
cout<<"Error occurred";
return 0;
}
print(0);
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: