因为要经常移动这些字符,所以采用的数据结构是链表。
next[i]起到的作用大概就是类似链表里的next指针。
0.需要注意的是,判断cur == last ? 如果 是 则 last=i
1.另外一点是,输入的时候把next[0]空出来,起链表里面空白头结点的作用。所以输入的时候有个小改动
从s+1开始填入字符,计算长度的时候也是从s+1开始计算,s代表的是这个数组的首地址。
2.直接往oj上交的时候要注意,next数组名要改一下
2.
)) { ); ...... }
#include <iostream> #include <cstring> #include <cstdio> using namespace std; +; int next[maxn]; char s[maxn]; int main() { )) { ); ,cur=; next[]=; ;i<=len;i++) { if(s[i]=='[') { cur=; } else if(s[i]==']') { cur=last; } else { next[i]=next[cur]; next[cur]=i; if(cur==last) last=i;//*** cur=i; } } ];i!=;i=next[i]) { cout<<s[i]; } cout<<endl; } ; }