当前位置: 首页 > article >正文

[NOIP 2001 普及组] 求先序排列 Java

import java.util.*;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);String infixOrder = sc.nextLine(); // 中序String postOrder = sc.nextLine(); // 后序sc.close();System.out.println(preOrder(infixOrder, postOrder));}static String preOrder(String infix, String post) {if (infix.isEmpty() || post.isEmpty()) return ""; // 递归终止char root = post.charAt(post.length() - 1); // 后序最后一个一定是根节点int rootIndex = infix.indexOf(root); // 根节点索引// 中序:左子树→根节点→右子树String infixLeft = infix.substring(0, rootIndex); // 中序的左子树String infixRight = infix.substring(rootIndex + 1); // 中序的右子树,不包含中间的根节点// 后序:左子树→右子树→根节点String postLeft = post.substring(0, infixLeft.length()); // 后序的左子树String postRight = post.substring(infixLeft.length(), post.length() - 1); // 后序的右子树,不包含最后的根节点// 前序:根节点→左子树→右子树return root + preOrder(infixLeft, postLeft) + preOrder(infixRight, postRight); // 左右子树分别递归继续执行}
}

每日一水~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

http://www.lryc.cn/news/2393369.html

相关文章:

  • Rockey Linux 安装ffmpeg
  • STM32 Modbus RTU从机开发实战:核心实现与五大调试陷阱解析
  • Python----目标检测(《Fast R-CNN》和Fast R-CNN)
  • iEKF的二维应用实例
  • 机器学习中的线性回归:从理论到实践的深度解析
  • 【通关文件操作(下)】--文件的顺序读写(续),sprintf和sscanf函数,文件的随机读写,文件缓冲区,更新文件
  • mysql的Memory引擎的深入了解
  • 尚硅谷-尚庭公寓部署文档
  • 使用函数证明给定的三个数是否能构成三角形
  • 【数据结构】——二叉树堆(下)
  • t009-线上代驾管理系统
  • 目标检测预测框置信度(Confidence Score)计算方式
  • 【题解-洛谷】B4295 [蓝桥杯青少年组国赛 2022] 报数游戏
  • Bootstrap项目 - 个人作品与成就展示网站
  • 新能源汽车霍尔线束介绍
  • 2023网络应用专业-Python程序设计复习题目
  • Termux可用中间人网络测试工具Xerosploit
  • 气镇阀是什么?
  • SmolVLM2: The Smollest Video Model Ever(七)
  • RFID综合项目实训 | 基于C#的一卡通管理系统
  • mysql如何设置update时间字段自动更新?
  • 数据库备份与恢复专业指南
  • 【第4章 图像与视频】4.5 操作图像的像素
  • Science Advances 上海理工大学与美国杜克大学(Duke University)共同开发了一种仿生复眼相机
  • 正点原子Z20 ZYNQ ​​​开发板​​发布!板载FMC LPC、LVDS LCD和WIFI蓝牙等接口,资料丰富!
  • 软件测评中心如何确保软件品质?需求分析与测试计划很关键
  • 004 flutter基础 初始文件讲解(3)
  • 2025LitCTF 复现
  • 英语中最难学的部分是时态‌
  • Python 如何让自动驾驶的“眼睛”和“大脑”真正融合?——传感器数据融合的关键技术解析