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-破损的键盘 Broken Keyboard