问题描述
给出两个由大写字母构成的字符串(长度不超过26),一个表示二叉树的前序遍历序列,一个表示二叉树的中序遍历序列,请你计算出该二叉树的后序遍历序列。
输入格式
两行,两个字符串分别表示前序和中序遍历的序列
输出格式
一行,一个字符串,表示后序遍历的序列
样例输入
ABGKLMCHJF
BLKMGAHCJF
样例输出
LMKGBHFJCA
#include <bits/stdc++.h>
using namespace std;
const int maxn=28;
char s1[maxn],s2[maxn];
int a,b,ans;
void hou(int n,char str1[maxn],char str2[maxn]) {
if(n<=0)return;
int s=strchr(str2,str1[0])-str2;
hou(s, str1 + 1, str2);
hou(n-1-s,str1+s+1,s+str2+1);
cout<<str1[0];
}
int main() {
cin>>s1>>s2;
int len=strlen(s1);
hou(len,s1,s2);
return 0;
}