UVA 11988 Broken Keyboard (a.k.a. Beiju Text)

  • Post author:
  • Post category:其他


#include<bits/stdc++.h>
int i,n,cur,last,next[100010];
char c,s[100010];
int main(){
	while(scanf("%s",s+1)==1){
		n=strlen(s+1);
		last=cur=0;
		next[0]=0;
		for(i=1;i<=n;i++){
			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(i=next[0];i!=0;i=next[i])
			printf("%c",s[i]);
		puts("");
	}
	return 0;
}



版权声明:本文为Napoleon2004原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。