whu 1478(模拟链表)

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

 

posted @ 2013-04-23 21:32  ihge2k  阅读(191)  评论(0编辑  收藏  举报