Uva破损的键盘

Posted karshey

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Uva破损的键盘相关的知识,希望对你有一定的参考价值。

在这里插入图片描述
输入:

This_is_a_[Beiju]_text
[[]][][]Happy_Birthday_to_Tsinghua_University

输出:

BeijuThis_is_a__text
Happy_Birthday_to_Tsinghua_University

ps:RT竟是因为数组又开小了。

讲解:每日算法练习——损坏的键盘(又名:悲剧文本)(Broken Keyboard)

代码:

#include<bits/stdc++.h>
using namespace std;
const int N=100005;
int main()
{
	int last,cur,next[N];//next用来记录下一个字符的位置 
	char s[N];
	while(cin>>s+1)//s[0]为空,从1开始 
	{
		last=0;
		cur=0;
		next[0]=0;
		
		for(int i=1;i<=strlen(s+1);i++)
		{
			if(s[i]=='[') cur=0;
			else if(s[i]==']') cur=last;
			else
			{
				next[i]=next[cur];
				next[cur]=i;
				
				if(last==cur) last=i;
				cur=i;
			}
		}
		
		for(int i=next[0];i!=0;i=next[i])
		{
			cout<<s[i];
		}
		cout<<endl;
	} 
	return 0;
}

以上是关于Uva破损的键盘的主要内容,如果未能解决你的问题,请参考以下文章

UVA11988破损的键盘

UVa11988-破损的键盘 Broken Keyboard

Uva破损的键盘

链表-破损的键盘 Uva 11988

例题6-4 破损的键盘(又名:悲剧文本)(Broken Keyboard,UVa 11988)—静态链表

数组模拟单向链表例题(UVa11988)