#include<stdio.h> #include<string.h> void build(int n,char*s1,char*s2) { if(n<=0)return ; int p=strchr(s2,s1[0])-s2;///p表示左结点的个数 build(p,s1+1,s2);///查找左结点 build(n-p-1,s1+p+1,s2+p+1);///查找右结点 printf("%c",s1[0]);///输出每次递归的结点值 } int main() { char s1[30],s2[30]; memset(s1,0,sizeof(s1)); memset(s2,0,sizeof(s2)); while(scanf("%s %s",s1,s2)!=EOF) { int n=strlen(s1); build(n,s1,s2); printf("\n"); } return 0; }
浙公网安备 33010602011771号