小慕正在开发一个魔法符文解析系统。系统中的符文以树状结构组织,每个节点用一个字母表示。小慕需要根据给定的目标符文序列,从根节点出发,找到所有到达叶子节点的路径中,能够匹配目标序列的最短路径。 树的结构由节点和层次关系组成,层次深度通过“|-”的数量表示。对于从根到叶子的某条路径,其连续节点构成的序列称为该路径的。例如,路径 `[D, A, B, C, G]` 可以提取出子路径 `[A, B, C, G]`,但 `[B, G, C]` 不是有效的子路径。 对于某个子路径,如果从中移除 n 个元素(n >= 0),且不改变剩余元素的相对顺序后,得到的新序列与目标序列完全相同,则称该子路径与目标序列匹配。 如果存在多条最短路径,小慕需要选择的那条;如果没有路径满足要求,则返回空路径 `NULL`。
提示:带虚线的词点一下有通俗解释。
输入描述
- 第一行输入一个整数 `n`,表示森林结构的深度优先遍历中的行数。 - 接下来的 `n` 行表示森林的结构(深度优先遍历的表示方式)。每一行中的节点由大写字母组成,层次关系用“|-”的数量表示。 - 最后一行输入目标路径,目标路径由大写字母组成,且长度不超过20。
输出描述
输出符合条件的最短路径(字典序最小)。如果找不到符合条件的路径,输出一个字符串`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