#include<iostream>
#include<vector>
using namespace std;
vector<char>post,in;
vector<char>level(100000,-1);
in N;
void ergodic(int root,int start,int end,int index){
    int i == start;
    if(start>end) return;
    while(i<end && in[i]!=post[root])
        i++;
    level[index]=post[root];
    ergodic(root-1-end+i,start,i-1,2*index+1);
    ergodic(root-1,i+1,end,2*index+2);
}

int main(){
    Cin>>N;
    post.resize(N);
    in.resize(N);
    for(int i=0;i<N;i++)
        Cin>>post[i];
    for(int i=0;i<N;i++)
        Cin>>in[i];
    ergodic(N-1,0,N-1,0);
    for(int i=0;cnt=0;i<level.size();i++){
        if(level[i]!=-1){
            printf("%c",level[i]);
            cnt++;
    }
    }
    return 0;
}

  

如果能python实现就好。

2021-1-2,笔记

posted on 2021-01-02 16:14  三天乐趣  阅读(220)  评论(0编辑  收藏  举报