1. 程式人生 > >紫書 悲劇文本(鏈表)

紫書 悲劇文本(鏈表)

max color 每次 name esp 節點 next char day

#include <bits/stdc++.h>
using namespace std;

const int maxn=1e5+5;
int cur, last, next[maxn];//last維護光標移動前的位置,cur維護待處理節點的前繼節點
char str[maxn];
int main()
{
    while(~scanf("%s",str+1)){
        int len=strlen(str+1);
        last=cur=0;
        next[0]=0;
        for(int i=1;i<=len;++i){
            
if(str[i]==[) cur=0;//遇到‘[‘把cur指到鏈表首部(0) else if(str[i]==]) cur=last;//遇到‘]‘把cur指到last else { next[i]=next[cur];next[cur]=i;//先把i和cur後一個節點連接,再把cur和i連接 if(cur==last) last=i;//未移動光標時,每次插入新數據,都要更新last cur=i; } }
for(int i=next[0];i!=0;i=next[i]) putchar(str[i]); puts(""); } return 0; } /* This_is_a_[Beiju]_text [[]][][]Happy_Birthday_to_Tsinghua_University */

本題用數組實現鏈表

紫書 悲劇文本(鏈表)