洛谷P1030 求先序排列

洛谷P1030 求先序排列

[NOIP2001 普及组] 求先序排列

文章目录

题目描述

给出一棵二叉树的中序与后序排列。求出它的先序排列。(约定树结点用不同的大写字母表示,且二叉树的节点个数 \\le 8)。

输入格式

共两行,均为大写字母组成的字符串,表示一棵二叉树的中序与后序排列。

输出格式

共一行一个字符串,表示一棵二叉树的先序。

样例 #1

样例输入 #1

复制代码
BADC
BDCA

样例输出 #1

复制代码
ABCD

提示

【题目来源】

NOIP 2001 普及组第三题

正确代码

c++ 复制代码
#include <bits/stdc++.h>
using namespace std;
/**
  *author: 枫飘长安
  *date: 2024/4/14
  *fileName: P1030.cpp
  *description: TODO
  **/
typedef long long ll;
const int MAXN = 1e6+10;

string inord,postord;

void beforeOrder(string in, string after);

int main (){
    cin >> inord >> postord;
    beforeOrder(inord,postord);
    return 0;
}

void beforeOrder(string in, string after) {
    if (in.size() == 0) return;
    char root = after[after.size()-1];
    cout << root;
    int pos = in.find(root);
    beforeOrder(in.substr(0,pos),after.substr(0,pos));
    beforeOrder(in.substr(pos+1),after.substr(pos,after.size()-pos-1));
}
相关推荐
优雅的潮叭1 分钟前
c++ 学习笔记之 shared_ptr
c++·笔记·学习
多米Domi0112 分钟前
0x3f第33天复习 (16;45-18:00)
数据结构·python·算法·leetcode·链表
SunkingYang8 分钟前
QT中使用Lambda表达式作为槽函数用法,以及捕获列表和参数列表用法与区别
c++·qt·用法·lambda表达式·捕获列表·槽函数·参数列表
森叶22 分钟前
Java 比 Python 高性能的原因:重点在高并发方面
java·开发语言·python
微露清风30 分钟前
系统性学习C++-第二十二讲-C++11
java·c++·学习
qq_3168377533 分钟前
uni.chooseMedia 读取base64 或 二进制
开发语言·前端·javascript
罗湖老棍子33 分钟前
【例4-11】最短网络(agrinet)(信息学奥赛一本通- P1350)
算法·图论·kruskal·prim
方圆工作室35 分钟前
【C语言图形学】用*号绘制完美圆的三种算法详解与实现【AI】
c语言·开发语言·算法
Lips6111 小时前
2026.1.16力扣刷题
数据结构·算法·leetcode
小二·1 小时前
Python Web 开发进阶实战:混沌工程初探 —— 主动注入故障,构建高韧性系统
开发语言·前端·python