洛谷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));
}
相关推荐
Cinema KI15 分钟前
走进C++11(上):核心语法变化与变成范式转变
c++
Ulyanov15 分钟前
基于Impress.js的3D概念地图设计与实现
开发语言·前端·javascript·3d·ecmascript
棱镜Coding18 分钟前
LeetCode-Hot100 30.两两交换链表中的节点
算法·leetcode·链表
A南方故人20 分钟前
一个用于实时检测 web 应用更新的 JavaScript 库
开发语言·前端·javascript
虎头金猫20 分钟前
内网导航站 “出圈”!用 cpolar 解锁 Dashy 远程访问新玩法
java·c++·python·程序人生·职场和发展·php·程序员创富
JosieBook21 分钟前
【WinForm】使用C# WinForm实现带有托盘图标功能的应用程序
开发语言·c#
2301_7903009624 分钟前
C++与量子计算模拟
开发语言·c++·算法
青灯照颦微30 分钟前
【R】三种方式安装R包
开发语言·r语言
汽车仪器仪表相关领域33 分钟前
经典指针+瞬态追踪:MTX-A模拟废气温度(EGT)计 改装/赛车/柴油车排气温度监测实战全解
大数据·功能测试·算法·机器学习·可用性测试
野生技术架构师37 分钟前
深度拆解JVM垃圾回收:可达性分析原理+全类型回收器执行机制
java·开发语言·jvm