【2001NOIP普及组】T3. 求先序排列 试题解析

本文涉及的产品
全局流量管理 GTM,标准版 1个月
云解析 DNS,旗舰版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 【2001NOIP普及组】T3. 求先序排列 试题解析

【2001NOIP普及组】T3. 求先序排列  试题解析

时间限制: 1000 ms         内存限制: 65536 KB

【题目描述】

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

【输入】

一行,一棵二叉树的中序与后序排序,中间用一个空格隔开。

【输出】

它的先序排列

【输入样例】

BADC BDCA

【输出样例】

ABCD

试题解析:递归  树  中序、后序转先序

1. #include<bits/stdc++.h>
2. using namespace std;
3. string a,b;
4. void build(int l1,int r1,int l2,int r2){
5.  int m=a.find(b[r2]);
6.  int n=b.find(b[r2]);
7.  cout<<b[r2];
8.  if(m>l1) build(l1,m-1,n-1,m-1);
9.  if(m<r2) build(m+1,r1,m,r2-1);
10. } 
11. void build(string mid,string back)
12. {
13.   int m = mid.find(back[back.size()-1]);
14.   cout<<back[back.size()-1];
15.   if(m>0) build(mid.substr(0,m),back.substr(0,m));
16.   if(m+1<mid.size()) build(mid.substr(m+1),back.substr(m,back.size()-m-1));
17. }
18. int main()
19. {
20.   cin>>a>>b;
21.   //build(0,a.size()-1,0,b.size()-1);
22.   build(a,b);
23.   return 0;
24. }


相关文章
从排列字符串到排列序列:解析增减字符串匹配问题
题目要求根据给定的字符串 s,构造一个排列序列 perm,其中排列序列中的数字满足以下规则: 如果 perm[i] < perm[i + 1],则对应的字符为 'I'; 如果 perm[i] > perm[i + 1],则对应的字符为 'D'。 我们需要根据字符串 s 中的字符,构造满足上述规则的排列序列 perm。
56 0
|
C++
从排列字符串到排列序列:解析增减字符串匹配问题
在这篇文章中,我们将解决 LeetCode 题目 "942. 增减字符串匹配",这是一个简单级别的题目,涉及到排列字符串和排列序列的转换。我们将详细讨论问题背景、解题思路、代码实现,同时进行必要的知识点罗列和总结。
48 0
【2012NOIP普及组】T1. 质因数分解 试题解析
【2012NOIP普及组】T1. 质因数分解 试题解析
☆打卡算法☆LeetCode 31、下一个排列 算法解析
“将数组序列重新排列成下一个更大的排列,如果不存在下一个更大的排列,则将数组排列成最小的排列。”
|
3天前
|
监控 Java 应用服务中间件
高级java面试---spring.factories文件的解析源码API机制
【11月更文挑战第20天】Spring Boot是一个用于快速构建基于Spring框架的应用程序的开源框架。它通过自动配置、起步依赖和内嵌服务器等特性,极大地简化了Spring应用的开发和部署过程。本文将深入探讨Spring Boot的背景历史、业务场景、功能点以及底层原理,并通过Java代码手写模拟Spring Boot的启动过程,特别是spring.factories文件的解析源码API机制。
15 2
|
1月前
|
缓存 Java 程序员
Map - LinkedHashSet&Map源码解析
Map - LinkedHashSet&Map源码解析
66 0
|
1月前
|
算法 Java 容器
Map - HashSet & HashMap 源码解析
Map - HashSet & HashMap 源码解析
52 0
|
1月前
|
存储 Java C++
Collection-PriorityQueue源码解析
Collection-PriorityQueue源码解析
60 0

推荐镜像

更多