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

[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.dtcms.com/a/222605.html

相关文章:

  • Python中的异常处理:如何优雅地处理程序中的错误
  • 【Python】第一弹:对 Python 的认知
  • 【技能篇】Java 面试题大全
  • 测试分类详解
  • 系统架构设计综合知识与案例分析
  • VR看房系统,新生代看房新体验
  • docker-compose搭建prometheus以及grafana
  • manus对比ChatGPT-Deep reaserch进行研究类论文数据分析!谁更胜一筹?
  • 【后端高阶面经:架构篇】50、数据存储架构:如何改善系统的数据存储能力?
  • Ubuntu 22.04 系统下 Docker 安装与配置全指南
  • Python中openpyxl库的基础解析与代码实例
  • 微信小店推客系统达人用户管理的数据支持和便利
  • window10下docker方式安装dify步骤
  • Leetcode 2005. 斐波那契树的移除子树游戏
  • 【算法提升】分组 day_tow
  • 【Doris基础】Apache Doris业务场景全解析:从实时数仓到OLAP分析的完美选择
  • ECS-7000能耗监测系统能耗数据管理机
  • iEKF的二维应用实例
  • 产品更新|数字主线深度解析:华望解决方案助力企业数字化转型
  • RabbitMQ和MQTT区别与应用
  • 粽叶飘香时 山水有相逢
  • 【动手学深度学习】2.5. 自动微分
  • 北京大学肖臻老师《区块链技术与应用》公开课:06-BTC-网络
  • PSpice软件快速入门系列--07.如何进行Worst Case最坏情况分析
  • TypeScript 中感叹号(!)两种位置用法
  • 基于粒子滤波的PSK信号解调实现
  • C#上传图片后压缩
  • Java处理动态的属性:字段不固定、需要动态扩展的 JSON 数据结构
  • FastAPI 项目配置管理
  • C/C++ 面试复习笔记(2)