这道题目在算法竞赛入门经典中是作为链表题目来做的,其实解法还有很多,这里列出我的思路:把一串字符分成一个一个的单词,再把单词压入双端队列中,最后按顺序输出即可。
#include<cstdio>
#include<cstdlib>
#include<iostream>
#include<cstring>
#include<algorithm>
#include<deque>
using namespace std;
deque<string> d;
void Insert(int sta,string& s)
{
if(!sta) d.push_front(s);
else d.push_back(s);
s = "";
}
int main()
{
// freopen("input.txt","r",stdin);
string s;
while(cin >> s){
string st = "";
int i,sta = 0;
for(i = 0; i < s.length(); i++)
{
if(s[i] == '['){
Insert(sta,st);
sta = 0;
}
else if(s[i] == ']'){
Insert(sta,st);
sta = 1;
}
else{
st.push_back(s[i]);
}
}
Insert(sta,st);
while(!d.empty()){
cout << d.front();
d.pop_front();
}
cout << '\n';
}
return 0;
}