# [NOIP2001 普及组] 求先序排列
## 题目描述
给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,且二叉树的节点个数 $ \le 8$)。
## 输入格式
共两行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列。
## 输出格式
共一行一个字符串,表示一棵二叉树的先序。
## 样例 #1
### 样例输入 #1
```
BADC
BDCA
```
### 样例输出 #1
```
ABCD
```
## 提示
**【题目来源】**
NOIP 2001 普及组第三题
#include<bits/stdc++.h>
using namespace std;
const int N=13;
char a[N],b[N];
int lens;
int find_(char ch){
int root=-1;
for(int i=0;i<lens;i++){
if(a[i]==ch){
root=i;
break;
}
}
return root;
}
void dfs(int l1,int r1,int l2,int r2){
if(l1>r1){
return;
}
cout<<b[r2];
int root=find_(b[r2]);
dfs(l1,root-1,l2,l2+root-1-l1);
dfs(root+1,r1,l2+root-l1,r2-1);
}
int main(){
ios::sync_with_stdio(false);
cin>>a>>b;
lens=strlen(a);
dfs(0,lens-1,0,lens-1);
return 0;
}