** 2184 - 根据前序中序求后序 ---二叉树
** 来源:东方博宜oj oj.czos.cn
#include<bits/stdc++.h>
using namespace std;
string s1,s2; // s1:前序遍历 s2:中序遍历
// 递归根据:前序中序, 求:后序(左右根)
void dfs(int l1,int r1,int l2,int r2)
{
int mid=s2.find(s1[l1]);
//如果有左子树:给定前序和中序的结果
if(mid>l2) dfs(l1+1,l1+mid-l2,l2,mid-1);
//如果有右子树
if(mid<r2) dfs(l1+mid-l2+1,r1,mid+1,r2);
//最后输出根
cout<< s1[l1];
}
int main()
{
cin>>s1>>s2;
//对于该二叉树,前序遍历和中序遍历的查找范围
dfs(0,s1.size()-1,0,s2.size()-1);
return 0;
}