码迷,mamicode.com
首页 > 其他好文 > 详细

【UVA11988】破损的键盘

时间:2019-10-07 09:16:05      阅读:70      评论:0      收藏:0      [点我收藏+]

标签:include   链表   turn   head   %s   一个   char   data   int   

题目链接

维护一个链表,以及当前位置、head、tail的指针,模拟就行了

#include<iostream>
#include<cstring>
#include<cstdio>
using namespace std;

char s[100010];

int cnt,head,tail,pos;
struct Data{
    char c;
    int nxt;
} a[100010];

int main()
{
    while(scanf("%s",s)!=EOF){
        memset(a,0,sizeof(a));
        cnt=0;
        head=tail=pos=0;
        int n=strlen(s);
        for(int i=0;i<n;++i){
            if(s[i]=='[')
                pos=head;
            else if(s[i]==']')
                pos=tail;
            else{
                a[++cnt].nxt=a[pos].nxt;
                a[pos].nxt=cnt;
                a[cnt].c=s[i];
                if(pos==tail) tail=cnt;
                pos=cnt;
            }
        }
        head=a[head].nxt;
        while(head) putchar(a[head].c),head=a[head].nxt;
        puts("");
    }
    return 0;
}

【UVA11988】破损的键盘

标签:include   链表   turn   head   %s   一个   char   data   int   

原文地址:https://www.cnblogs.com/yjkhhh/p/11629331.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!