1 条题解
-
0
思路
中序与层序的根与区间划分,不可当作先序输入;字母结点唯一,保留大小写。
参考程序(C++11)
#include <bits/stdc++.h> using namespace std; string solve(string in,string level){if(in.empty())return "";char root=level[0];int p=in.find(root);string a=in.substr(0,p),b=in.substr(p+1),al,bl;for(char x:level){if(a.find(x)!=string::npos)al+=x;if(b.find(x)!=string::npos)bl+=x;}return string(1,root)+solve(a,al)+solve(b,bl);}int main(){string a,b;cin>>a>>b;cout<<solve(a,b)<<'\n';}
- 1