基础题,主要思路是找到根,然后分别递归即可;
1 #include2 #include 3 #include 4 #include 5 #include 6 using namespace std; 7 char s[30],t[30]; 8 int n; 9 void dfs(int x,int y,int a,int b){10 int k;11 for(int i=a;i<=b;i++)if(s[i]==t[x]){k=i;break;}12 if(k!=a)dfs(x+1,x+k-a,a,k-1);13 if(k!=b)dfs(x+k-a+1,y,k+1,b);14 cout<