uva 11988 Broken Keyboard (a.k.a. Beiju Text)

来源:互联网 发布:网络推广是做什么的 编辑:程序博客网 时间:2024/06/02 07:16

目:Broken Keyboard (a.k.a. Beiju Text)


题意:略。


思路:链表。


代码:

#include<cstdio>#include<iostream>#include<string>#include<cstring>#include<vector>#include<set>#include<map>#include<algorithm>#include<cmath>#include<queue>#include<stack>#include<deque>using namespace std;struct list{int front,back;char x;};vector<list> vec;int add=0,last=0;int main() {string str;while(getline(cin,str)){add=0,last=0;vec.clear();list init;init.x='@';init.front=-1;init.back=-1;vec.push_back(init);for(int i=0;i<str.size();i++){if(str[i]=='['){add=0;} else if(str[i]==']'){add=last;}else{list x;x.x=str[i];x.front=add;x.back=vec[add].back;vec.push_back(x);vec[add].back=vec.size()-1;if(x.back==-1) last=vec.size()-1;add=vec.size()-1;}}int now=0;for(;;){now=vec[now].back;if(now==-1) break;printf("%c",vec[now].x);}printf("\n");}return 0;}


原创粉丝点击