Uva 11988 Broken Keyboard

来源:互联网 发布:60插件数据库 编辑:程序博客网 时间:2024/05/01 00:59

对于数组来说移动元素是低效的 采用链表实现更为高效

#include <algorithm>#include <iostream>#include <cstring>  #include <cstdio>  #include <stack>using namespace std;  const int MAX = 100010;int last, cur, next[MAX];char s[MAX];int main(){    while(scanf("%s",s + 1) == 1){        int l = strlen(s + 1);        last = cur = 0;        next[0] = 0;        for(int i=1; i<=l; i++){            char c = s[i];            if(c == '[') cur = 0;            else if(c == ']') cur = last;            else{                next[i] = next[cur];                next[cur] = i;                if(cur == last) last = i;                cur = i;            }        }        for(int i=next[0]; i!=0; i=next[i]){            printf("%c",s[i]);        }        printf("\n");    }    return 0;}


0 0
原创粉丝点击