通过率 34% · 提交 121 · 通过 41
在一个遥远的魔法森林中,树木茂密,林中有许多魔法符号,代表着不同的魔法节点。每一棵树都长满了各种分支,连接成一个复杂的树状结构。每个分支上的节点都由大写字母表示,这些字母代表了不同的魔法符号。巫师们在森林中探险时,必须根据这些符号寻找魔法宝物,而你的任务就是帮助他们找到合适的路径。 森林的结构可以通过一个树状图来表示,节点由字母表示,层次关系用“|-”的数量表示。你需要根据目标符号序列,找到所有从根节点到叶子节点的路径中,符合目标符号序列的最短路径。 对于从根到叶子的一条路径,它的连续节点形成的序列称为它的。例如,路径 `[D, A, B, C, G]` 可以形成子路径 `[A, B, C, G]`,但路径 `[B, G, C]` 则不是有效的子路径。 对于某个子路径,当所形成的新路径与目标序列相同,则该子路径是匹配目标序列的。 如果有多个最短路径,返回的路径;如果没有路径符合要求,则返回空路径`NULL`。 输入: - 第一行输入一个整数 `n`,表示森林结构的深度优先遍历中的行数。 - 接下来的 `n` 行表示森林的结构(深度优先遍历的表示方式)。每一行中的节点由大写字母组成,层次关系用“|-”的数量表示。 - 最后一行输入目标路径,目标路径由大写字母组成,且长度不超过20。 输出: 输出符合条件的最短路径(字典序最小)。如果找不到符合条件的路径,输出一个字符串`null`。
这类题属于华为可信认证科目一方向中「可信 / 栈」方向的高频题型,通常考察对「可信 / 栈」的建模能力与边界条件处理。掌握本题的解题思路后,可举一反三应对同类真题方向,稳步提升机考通过率。
提示:带虚线的词点一下有通俗解释。
n,表示森林结构的深度优先遍历中的行数。n 行表示森林的结构(深度优先遍历的表示方式)。每一行中的节点由大写字母组成,层次关系用“|-”的数量表示。输出符合条件的最短路径(字典序最小)。如果找不到符合条件的路径,输出一个字符串null。
示例 1
输入示例
9 D |-A |-|-B |-|-|-C |-|-|-|-G |-|-|-|-|-F |-|-C |-|-|-A |-|-|-|-G ACG
输出示例
ABCG
示例 2
输入示例
16 Z |-Z |-|-D |-|-|-B |-|-|-|-Z |-|-|-|-|-A |-|-|-|-|-|-B |-|-|-|-|-|-|-Z |-|-|-|-|-|-|-|-C |-|-|-|-|-|-|-|-|-B |-A |-|-A |-|-|-B |-|-|-|-C |-|-|-|-|-D |-|-|-|-|-|-B ZBB
输出示例
ZABZCB
时间限制 1000 ms · 内存限制 128 MB
本平台为独立第三方培训机构,与华为技术有限公司无任何关联;课程的服务内容与权益以购买协议为准,学习效果因个人情况而异。「华为 OD」「华为可信」等仅为对岗位与考试方向的客观描述,相关商标归各自权利人所有。
登录后可查看你在本题的历史提交,以及每次的各用例通过情况。
© 2026 广州慕课网络科技有限公司 · 吴师兄学算法官网 版权所有