华为 · 排序 · 算法编程题
华为 排序 时限 1 秒 / 256 MB

题目描述

在2077年,您是一位顶尖的“深空网络”工程师,负责维护一个位于遥远星系的分布式文件系统。
该系统的稳定运行对于星际通信至关重要。
现在,您需要编写一个模拟程序来测试和验证该文件系统的核心命令行功能。

输入输出

输入描述
这个星际文件系统是一个典型的树状结构。系统的根目录表示为 / 。系统初始化时,根目录下已经创建了一个名为 usr 的用户目录,而您的初始工作目录也正是 /usr。
您需要处理一连串的命令行指令。支持的指令集如下:
mkdir: 在当前目录下,创建一个名为的新目录。如果同名目录已存在,则此指令将被忽略。
cd .. : 切换到上一级父目录。
cd: 切换到当前目录下的子目录。
ls : 列出当前目录下所有子目录的名称,并按字典序升序排列。
您将接收到 m 条指令。您的任务是模拟这些指令的执行,并输出所有 ls 指令的结果。
输出描述
对于每一条 ls 指令,您需要输出其执行结果。每条 ls 的结果占一行,目录名之间用单个空格分隔。
特别地,如果当前目录下没有任何子目录, ls 指令应当输出一个单独的空格。

样例共 1 组

样例 1
输入
20
mkdir syadhzdgck
mkdir irky
cd ..
cd usr
ls
cd ..
ls
mkdir wfanr
cd usr
ls
cd ..
ls
mkdir fuuszuicsn
cd wfanr
cd ..
cd fuuszuicsn
cd ..
mkdir ebw
cd ebw
ls
输出
irky syadhzdgck
usr
irky syadhzdgck
usr wfanr

算法解析依据一般

考点:排序

限制 1 秒 / 256MB | 标准输入输出

题目画像

  • 源站时限:1 秒(牛客口径,非本题专属门槛)

解题思路

参考方向:排序

先用 O(n log n) 排序把无序变有序,后续处理往往就简单了。

思路框架(排序 通法 · 非本题专属)

  1. 排序后很多性质变简单:相邻关系、前缀性质、二分可行。
  2. 若题目禁止使用排序库函数,则手写快排/归并(归并还能顺带求逆序对)。
  3. 排序常与其他范式组合,比如「排序 + 贪心」「排序 + 二分」「排序 + 双指针」。

实现要点:在 C++ 中用 std::sort,Python 用 sorted();注意自定义比较函数的严格弱序。

复杂度:时间 O(n log n) | 空间 O(log n) ~ O(n)

该范式的通法易错点

  • 自定义比较函数不满足严格弱序会导致运行时崩溃。
  • 排序后丢失原始下标,题目需要下标时记得用 pair 一起排。
本题在源数据中没有官方考点标签,方向由题面特征推断,仅供参考。

样例

样例 1

  • 输入:20 / mkdir syadhzdgck / mkdir irky / cd .. / cd usr / ls / cd .. / ls / mkdir wfanr / cd usr / ls / cd .. / ls / mkdir fuuszuicsn / cd wfanr
  • 输出:irky syadhzdgck / usr / irky syadhzdgck / usr wfanr

解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。

本题来源:2025年秋招-华为-10月23号留学生开发岗。

‹ 上一题 全部编程题 下一题 ›
编程算法题为只读内容:无需作答,直接看题与解析 · 本站不提供在线判题 · 解析由校招宝本地引擎整理,非官方题解