whu 1478(模拟链表)

来源:互联网 发布:安卓数据库 编辑:程序博客网 时间:2024/05/18 14:44

题目链接: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 }

 

0 0