洛谷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));
}
相关推荐
mmz120713 小时前
双指针问题5(c++)
c++·算法
星空露珠13 小时前
lua获取随机颜色rgb转换hex
数据结构·数据库·算法·游戏·lua
mit6.82413 小时前
预hash|vector<int> dfs
算法
Zsy_05100313 小时前
【数据结构】堆简单介绍、C语言实现堆和堆排序
c语言·数据结构·算法
Rock_yzh13 小时前
LeetCode算法刷题——56. 合并区间
数据结构·c++·学习·算法·leetcode·职场和发展·动态规划
笃行客从不躺平13 小时前
认识 Java 中的锁升级机制
java·开发语言
weixin_3077791313 小时前
Jenkins Branch API插件详解:多分支项目管理的核心引擎
java·运维·开发语言·架构·jenkins
sheeta199813 小时前
LeetCode 每日一题笔记 日期:2025.12.02 题目:3623. 统计梯形的数目 I
笔记·算法·leetcode
宇来风满楼13 小时前
U-KAN复现
人工智能·深度学习·神经网络·算法·机器学习
@木辛梓13 小时前
结构体 结构体c++
开发语言·c++