题解:本题主要考查搜索,树形结构。求先序遍历就是要不断找根,把一棵大树分成两颗子树,然后搜索他们的父节点即可。
代码如下:
#include<iostream>
#include<algorithm>
using namespace std;
char a1[98675],a2[78454];
int len;
int find(char ch)
{
for(int i=0;i<len;i++)if(a1[i]==ch) return i;
}
void a(int l1,int r1,int l2,int r2)
{
int m=find(a2[r2]);
cout<<a2[r2];
if(m>l1)a(l1,m-1,l2,r2-r1+m-1);
if(m<r1)a(m+1,r1,l2+m-l1,r2-1);
}
int main()
{
cin>>a1>>a2;
len=strlen(a1);
a(0,len-1,0,len-1);
return 0;
}