#include <stdio.h>
#include <stdlib.h>
#include <string.h>
typedef struct BTNode{
char data;
struct BTNode *left,*right;
}BTNode,*BTree;
void build(BTree *t,char *pre,char *in,int len){
if (len<=0)
{
*t=NULL;
return;
}
int pos=strchr(in,pre[0])-in;
*t=(BTNode *)malloc(sizeof(BTNode));
(*t)->data=*pre;
build(&(*t)->left,pre+1,in,pos);
build(&(*t)->right,pre+pos+1,in+pos+1,len-pos-1);
}
void postorder(BTree t){
if (t)
{
postorder(t->left);
postorder(t->right);
printf("%c",t->data);
}
}
void clean(BTree *t){
if (*t)
{
clean(&(*t)->left);
clean(&(*t)->right);
free(*t);
}
}
int main(){
BTree root;
char pre[30],in[30];
// freopen("1.txt","r",stdin);
while (scanf("%s %s",pre,in)!=EOF)
{
build(&root,pre,in,strlen(pre));
postorder(root);
clean(&root);
printf("\n");
}
// fclose(stdin);
return 0;
}
/**************************************************************
Problem: 2193
User: admin
Language: C
Result: Accepted
Time:13 ms
Memory:1144 kb
****************************************************************/