最新华为OD机试真题——(E卷,200分) - 树状结构查询(python)

题目描述

通常使用多行的节点、父节点表示一棵树,比如:

西安 陕西
陕西 中国
江西 中国
中国 亚洲
泰国 亚洲

输入一个节点之后,请打印出树中该节点的所有下层节点。

输入描述

  • 第一行输入行数,后面的多行数据,每行以空格区分节点和父节点。
  • 接着是查询节点。

输出描述

  • 输出查询节点的所有下层节点,按字典序排序。

示例输入

5
b a
c a
d c
e c
f d
c

示例输出

d
e
f

说明

在这个示例中:

  • 输入中前面的5行定义了树的结构,其中 abc 的父节点,cde 的父节点,df 的父节点。
  • 查询节点为 c,它的下层节点有 def,输出时需要按字典序排列。最终输出的结果为:
d
e
f

通过以上描述,可以具体了解树的结构及如何查询下层节点。

python源码

# 输入行数
num_lines = int(input())

# 创建一个字典用于存储树的父子关系
tree_structure = {}

# 读取输入的树的关系,并将子节点和父节点存入字典中
for _ in range(num_lines):
    child_node, parent_node = input().split()  # 获取子节点和父节点

    if parent_node not in tree_structure:
        tree_structure[parent_node] = set()  # 如果父节点不在字典中,则创建一个空集合

    tree_structure[parent_node].add(child_node)  # 将子节点添加到父节点的集合中

query_node = input()  # 输入要查询的节点

# 如果字典中不包含要查询的节点,则输出空行并结束程序
if query_node not in tree_structure:
    print("")
    exit()

# 创建一个队列,用于存储要遍历的节点
search_queue = list(tree_structure[query_node])

# 创建一个列表,用于存储查询节点的所有下层节点
found_nodes = []

# 遍历队列,将节点添加到结果集中,并将该节点的子节点添加到队列中
while search_queue:
    current_node = search_queue.pop(0)  # 从队列中取出节点
    found_nodes.append(current_node)  # 将节点添加到结果集中

    if current_node in tree_structure:  # 如果节点在字典中有子节点,则将子节点添加到队列中
        search_queue.extend(tree_structure[current_node])

# 对结果集进行排序
found_nodes.sort()

# 打印结果集中每个节点
for node in found_nodes:
    print(node)

关于华为OD

在这里插入图片描述

华为OD机考笔试的难度逐年提升,对于算法基础薄弱或工作后较少接触算法的候选人来说,通过率较低,因此全面刷题库是提高通过率的关键。以下是对华为OD职位的一些关键信息整理:

华为OD职位特点:

  1. 校准与可靠性:经过专业校准,确保高可靠性和长期稳定性。
  2. 集成与功耗:传感器通过单线串行接口集成,体积小,功耗低。
  3. 适用场景:适用于多种应用场景,具有4针单排引脚封装,方便连接。
  4. 工作内容:与正式员工一起在华为研究所办公,工作内容基本相同。
  5. 工作时间:弹性工作制,一般一二四需补工时至晚上20:30,三五正常下班,周末双休,月末周六加班双倍工资。
  6. 学历与经验:要求本科及以上学历,理工类专业优先,有编程语言基础和基础算法知识。
  7. 转正要求:工作满一年,通过专业级可信认证,绩效至少拿过一次A,部门有转正指标。

候选人常见关注问题:

  • 外包职位:外包职位并非没有技术学习机会,关键在于个人能力和项目经验。
  • OD转华为正编:需要连续两次绩效A,但并非绝对要求,关键在于个人能力和部门指标。
  • OD稳定性:华为业务基本稳定,外包职位相比互联网和传统外包公司稳定性更高。
  • OD试用期转正:一般要求通过入门级或工作级可信认证,通过率较高。
  • OD转华为正编要求:工作满一年,通过专业级可信认证,绩效至少拿过一次A,部门有转正指标。

职位适合的候选人:

  • 编程水平、项目经验薄弱,希望快速获得核心项目经验的毕业生。
  • 工作经验丰富,希望突破现有薪资待遇和职业发展的专业人士。
  • 有相关基础或经验,希望获得职业转型机会的候选人。
  • 想加入华为但个人能力未达社招正编要求的候选人。

以下是针对华为OD机试E卷的高效备考指南,结合你的需求整理成结构化方案:


一、E卷题型构成分析

  • 题目来源:1道E卷新题 + 2道D/A/B/C卷旧题(新旧比例约1:2)
  • 分数分布:2道100分题(一星难度) + 1道200分题(二星难度)
  • 通过标准:总分150分(非目标院校建议260+安全分,300+对定级/薪资有利)

二、高效刷题策略

1. 优先级排序
  • Step1:优先刷E卷新题(题库持续更新中,关注最新动态)
  • Step2:重点突破D/A/B/C卷高频旧题(占2/3题目,原题概率高)
  • Step3:按算法分类专项练习(参考下文分类题单)
2. 分类刷题法(附高频题型)
算法分类 经典题型举例 刷题建议
字符串处理 字符串反转、KMP算法、正则匹配 熟悉API,避免超时
动态规划 背包问题、最长递增子序列、编辑距离 掌握状态转移方程
DFS/BFS 岛屿问题、迷宫路径、拓扑排序 模板题反复练习
贪心算法 区间调度、分糖果、跳跃游戏 验证最优性条件
二叉树 遍历、最近公共祖先、序列化 递归/迭代双解法
并查集 朋友圈问题、连通分量 路径压缩优化
滑动窗口 最长无重复子串、最小覆盖子串 边界条件敏感
3. 刷题技巧
  • 限时训练:100分题40分钟/题,200分题60分钟/题(模拟考试压力)
  • 闭卷编码:先独立完成再看解析,避免“虚假掌握”
  • 查重规避:修改变量名、调整逻辑顺序、添加注释(直接复制易被查重)

三、考试实战技巧

  1. 环境准备

    • 使用Chrome浏览器,关闭无关网页(防弹窗违规)
    • IDE本地编码后粘贴(避免在线编辑器卡顿)
  2. 答题策略

    • 先做100分题保底,再攻200分题(时间分配建议:40min+40min+60min)
    • 自测用例覆盖边界值(如空输入、超大数组等)
  3. 异常处理

    • 断网/死机可重新登录恢复进度
    • 中途离开需申请(否则可能判作弊)

四、资源推荐

  • 题库更新:关注官方动态及社区新题共享
  • 工具辅助
    • ChatGPT解析算法思路(但需自行编码实现)
    • LeetCode按标签筛选相似题(如华为常考的BFS/DP题型)

五、注意事项

  • 冷冻期:未通过需等待6个月才能再考
  • 语言选择:Java/Python更易上手(但需熟记基础API)
  • 代码规范:注释清晰,避免ctrl+s误操作

你可能感兴趣的:(华为od,python,华为)