题目链接:http://acm.whu.edu.cn/land/problem/detail?problem_id=1478
比赛的时候由于对题意不是很理解,当时就不想写这道题。。。orz。。。然后回来的时候队友用string写了一个TLE,然后我也搞了一下。无奈TLE到死啊!!!!这不知道我们还有一直队用string是怎么过的。。。orz..........看完解题报告。我傻眼了。。。就是模拟链表啊!!!!好吧。。。。见识短了。。。。
View Code
1 #define _CRT_SECURE_NO_WARNINGS 2 #include<iostream> 3 #include<cstdio> 4 #include<cstring> 5 #include<string> 6 #include<list> 7 using namespace std; 8 const int MAXN=1000000+10; 9 char str[MAXN]; 10 11 12 int main(){ 13 int _case,t=1; 14 scanf("%d",&_case); 15 while(_case--){ 16 scanf("%s",str); 17 int len=strlen(str); 18 list<char>::iterator iter; 19 list<char>List; 20 iter=List.end(); 21 for(int i=0;i<len;i++){ 22 if(str[i]=='<'){ 23 if(iter!=List.begin())iter--; 24 }else if(str[i]=='>'){ 25 if(iter!=List.end())iter++; 26 }else if(str[i]=='-'){ 27 if(iter!=List.begin()){ 28 iter--; 29 iter=List.erase(iter); 30 } 31 }else { 32 List.insert(iter,str[i]);//前插 33 } 34 } 35 printf("Case %d: ",t++); 36 for(iter=List.begin();iter!=List.end();iter++){ 37 printf("%c",*iter); 38 } 39 puts(""); 40 } 41 return 0; 42 }