Uva 11988 Broken Keyboard

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

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

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

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

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

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

2.

  ))
     {
         );
         ......
      }    
 #include <iostream>
 #include <cstring>
 #include <cstdio>
 using namespace std;
  +;
 int next[maxn];
 char s[maxn];
 int main()
 {
     ))
     {
         );
         ,cur=;
         next[]=;
         ;i<=len;i++)
         {
             if(s[i]=='[')
             {
                 cur=;
             }
             else if(s[i]==']')
             {
                 cur=last;
             }
             else
             {
                 next[i]=next[cur];
                 next[cur]=i;
                 if(cur==last) last=i;//***
                 cur=i;
             }
         }
         ];i!=;i=next[i])
         {
             cout<<s[i];
         }
         cout<<endl;
     }

     ;
 }
上一篇:java Html 转 PDF


下一篇:普通函数跟箭头函数中this的指向问题