1)
#include <iostream>
#include <string.h>
using namespace std;
const int maxn=100000+5;
int next[maxn];
int cur,last;
//next[0]=0;
//int cur=0;
//int last=0;
char s[maxn];
int main()
{
while(scanf("%s",s+1)==1){
int len=strlen(s+1);//从起始地址开始计算个数
last=cur=0;
next[0]=0;
for(int i=1;i<=len;i++){
if(s[i]=='[')
cur=0;
else if(s[i]==']')
cur=last;
else{
next[i]=next[cur];//从当前字符指向上一个字符所指向的位置(刚开始即指向0,相当于指向一个尾节点)
next[cur]=i;//从光标cur的位置指向当前字符
if(cur==last)//记录当前最后一个字符
last=i;
cur=i;//将cur移动到当前字符
}
}
for(int i=next[0];i!=0;i=next[i]){
cout<<s[i];
}
cout<<endl;
memset(next,0,sizeof(next));
//cur=last=0;
}
return 0;
}