Uva 11988 Broken Keyboard

Posted

tags:

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

因为要经常移动这些字符,所以采用的数据结构是链表。

next[i]起到的作用大概就是类似链表里的next指针。

0.需要注意的是,判断cur == last ? 如果 是 则 last=i

1.另外一点是,输入的时候把next[0]空出来,起链表里面空白头结点的作用。所以输入的时候有个小改动

  从s+1开始填入字符,计算长度的时候也是从s+1开始计算,s代表的是这个数组的首地址。

2.直接往oj上交的时候要注意,next数组名要改一下

 2.

1  while(~scanf("%s",s+1))
2     {
3         int len=strlen(s+1);
4         ......
5      }    

 

 

 

 

 1 #include <iostream>
 2 #include <cstring>
 3 #include <cstdio>
 4 using namespace std;
 5 const int maxn= 100000 +5;
 6 int next[maxn];
 7 char s[maxn];
 8 int main()
 9 {
10     while(~scanf("%s",s+1))
11     {
12         int len=strlen(s+1);
13         int last=0,cur=0;
14         next[0]=0;
15         for(int i=1;i<=len;i++)
16         {
17             if(s[i]==[)
18             {
19                 cur=0;
20             }
21             else if(s[i]==])
22             {
23                 cur=last;
24             }
25             else
26             {
27                 next[i]=next[cur];
28                 next[cur]=i;
29                 if(cur==last) last=i;//***
30                 cur=i;
31             }
32         }
33         for(int i=next[0];i!=0;i=next[i])
34         {
35             cout<<s[i];
36         }
37         cout<<endl;
38     }
39 
40     return 0;
41 }

 

以上是关于Uva 11988 Broken Keyboard的主要内容,如果未能解决你的问题,请参考以下文章

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

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

Uva 11988 Broken Keyboard STL+链表

Broken Keyboard (a.k.a. Beiju Text) UVA - 11988 (链表)

UVa11988 Broken Keyboard 损坏的键盘list

UVa 11988 Broken Keyboard(数组模拟链表)