#include <stdio.h> #include<string.h> #include<stdlib.h> typedef struct tree{ struct tree* lchild; struct tree *rchild; char v; }tree,*node; node create(char a[],char b[],int a1,int a2,int b1,int b2){ node no=(tree *)malloc(sizeof(tree)); no->v=a[a1]; if(a1==a2){ no->lchild=NULL; no->rchild=NULL; return no; } int len=0; int a11; int i; for(i=b1;b[i]!=a[a1];i++){ len++; } if(len==0){ no->lchild=NULL; no->rchild=create(a,b,a1+len+1,a2,i+1,b2); }else if(len+b1==b2){ no->rchild=NULL; no->lchild=create(a,b,a1+1,a1+len,b1,i-1); } else{ no->lchild=create(a,b,a1+1,a1+len,b1,i-1); no->rchild=create(a,b,a1+len+1,a2,i+1,b2); } return no; } void visit(node r){ printf("%c",r->v); } void houxu(node r){ if(r==NULL)return; houxu(r->lchild); houxu(r->rchild); visit(r); } int main() { char a[26],b[26],c[26]; while(scanf("%s %s",a,b)!=EOF){ int i=strlen(a); int j=strlen(b); node root=create(a,b,0,i-1,0,i-1); houxu(root); printf("\n"); } return 0; }