蓝桥 - 求先序排列(知中序和后序求先序)

Posted jiamian

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了蓝桥 - 求先序排列(知中序和后序求先序)相关的知识,希望对你有一定的参考价值。

 

Description

给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,长度<=8)。

Input

两行,每行一个字符串,分别表示中序和后序排列

Output

一个字符串,表示所求先序排列

Sample Input

BADC
BDCA

Sample Output

ABCD

 

 

 1 #include <bits/stdc++.h>
 2 const int INF=0x3f3f3f3f;
 3 typedef long long LL;
 4 const double eps =1e-8;
 5 const int mod=1e9+7;
 6 const int maxn=1e5+10;
 7 using namespace std;
 8 
 9 string a;
10  
11 void solve(string b,string c)
12 {
13     string b1,b2,c1,c2;
14     int lenb=b.size();
15     int lenc=c.size();
16     a+=c[lenc-1];
17     int pos=b.find(c[lenc-1],0);
18     b1=b.substr(0,pos);
19     b2=b.substr(pos+1,(lenb-pos-1));
20     c1=c.substr(0,pos);
21     c2=c.substr(pos,(lenb-pos-1));
22     if(b1.size()&&c1.size()) solve(b1,c1);
23     if(b2.size()&&c2.size()) solve(b2,c2);
24 }
25  
26 int main()
27 {
28     #ifdef DEBUG
29     freopen("sample.txt","r",stdin);
30     #endif
31     
32     string b,c;
33     cin>>b>>c;
34     solve(b,c);
35     cout<<a<<endl;
36      
37     return 0;
38 }

 

 

 

 

-

以上是关于蓝桥 - 求先序排列(知中序和后序求先序)的主要内容,如果未能解决你的问题,请参考以下文章

(蓝桥杯)试题 算法训练 求先序排列

数据结构——已知先序中序求后序,已知中序后序求先序

已知先序和中序 求后序

2001求先序排列

求先序排列

codevs 1013 求先序排列