#include "iostream"
using namespace std;
char A[50],B[50];
struct Node
{
char Data;
Node *left;
Node *right;
};
struct Tree
{
private:
Node *root;
public:
Tree(){root=NULL;}
Node *&Root(){return root;} //访问根节点
void Output();
void Output(Node *p);
int Height();
int Height(Node *p);
};
int Tree::Height()
{
return Height(root);
}
int Tree::Height(Node *p)
{
if(p==NULL) return 0;
int left,right;
left=Height(p->left);
right=Height(p->right);
if(left>right) return left+1;
else return right+1;
}
void Tree::Output()
{
Output(root);
}
void Tree::Output(Node *p)
{
if(p!=NULL)
{
cout<Data<
Output(p->left);
Output(p->right);
}
}
void f(int Aleft,int Bleft,int Len,Node *&p) //A,B的左坐标
{
if(Len<=0)
{
p=NULL;
return;
}
int len,i;
i=Bleft;
while(A[Aleft]!=B[i]) i++;
p=new Node;
p->Data=A[Aleft];
len=i-Bleft;
f(Aleft+1,Bleft,len,p->left);
f(Aleft+len+1,i+1,Len-len-1,p->right);
}
int main( )
{
int n,i;
cin>>n;
for(i=0;i
cin>>A[i];
for(i=0;i
cin>>B[i];
Tree tree;
f(0,0,n,tree.Root());
cout<
return 0;
}