华为OD Python后端全流程上岸 机试三题与技术面复盘
- 轮次
- 多轮面试合集
- 时间
- 2026-09
- 来源
- 牛客网
《面试题目》
- 机试 T1:对给定的数组调用库函数排序。
- 机试 T2:验证回文字符串 Ⅱ 的改版,考察回文串性质。
- 机试 T3:二叉树子树求和,以及用数组标记森林的根节点。
- 请做一下自我介绍(性格与经历部分会被重点追问)。
- 介绍一到两个代表性项目,并回答面试官的深挖。
- 手撕代码(技术一面):手动实现 sqrt,用二分。
- 手撕代码(技术二面):字符串题,换皮的 KMP。
- 少量八股,浅问。
- 平时如何使用 Vibe coding 这类编码助手?遇到哪些问题、怎么处理?
- 不同模型在编码场景下的性能差异,你怎么看?
- 你了解 OD 模式吗?
- 你能接受加班吗?
- 为什么来华为 OD,而没有去其他公司?
- 从毕业到现在这段空窗期,怎么解释?
- 综面:公司及职业相关问题,以及合作经历的深挖。
《参考解析》
机试三题的落地要点:T1 直接调库排序是送分题,注意比较器写稳(自定义类型、降序、多关键字),别在输入解析上翻车。T2 是「验证回文字符串 Ⅱ」的改版,标准做法是双指针从两端向中间比,第一次遇到不等的字符时只有两种可能——跳过左边或跳过右边——分别校验剩下的一段是否回文,任一条成立即可;因为是「最多删一个」,不需要回溯枚举,一次线性扫描就够,用递归去试所有删除位置会把复杂度写坏。T3 是两道小题拼在一起:子树求和用后序遍历自底向上返回子树和,避免每个节点重复遍历整棵子树;「数组标记森林的根节点」考的是标记法或并查集——遍历边时把有父节点的节点标记掉,剩下没被标记的就是根,一次遍历即可。
手撕:二分实现 sqrt:这题考的不是会不会二分,而是边界与溢出。先明确要整数解还是浮点解:整数版本在安全上界(x 本身,或 x/2+1)上二分满足 mid * mid <= x 的最大 mid,mid * mid 在 int 上会溢出,要么换 long long,要么写成 mid <= x / mid。循环可以写 lo <= hi 配 ans 记录,也可以用半开区间收敛到 lo,两种都要能讲清终止条件与答案落在哪。浮点版本要讲清停止条件:固定迭代 30 到 50 次比 abs(mid*mid - x) < eps 更稳,因为后者在 x 很大时误差受浮点精度限制、可能永远达不到。面试官想听的是你主动提溢出与精度,而不是背模板。
手撕:换皮 KMP:所谓换皮,只是把「在文本串里找模式串」的场景换成别的说法,骨架不变。要点是先把 next 数组(前缀函数)构造出来:它是模式串「自己与自己匹配」的过程,next[i] 表示 p[0..i] 的最长相等前后缀长度;匹配失配时模式串指针回退到 next[j-1],主串指针永不回退,所以整体是 O(n+m)。要能解释朴素匹配为什么最坏 O(n*m)——每次失配都从头再来,信息被浪费。实现细节上,next 从 0 开始还是从 1 开始、要不要加哨兵,会让代码看起来完全不同但等价,面试时先说清楚自己用哪套,比写到一半发现下标对不上更稳。实在写不顺,先写朴素解法把逻辑跑通,再说怎么用 next 优化。
项目深挖:STAR 加四步追问:这类岗位真正的评分项是项目。用 STAR 组织:背景(业务是什么、量级多大、为什么做)、任务(你负责哪一块、目标是什么)、行动(具体方案、为什么这么选、踩了什么坑怎么解决)、结果(指标变化或可量化的收益)。被追问技术细节时按四步回答:用了什么;为什么这么用、和替代方案比差在哪;怎么实现,关键数据结构与流程是什么;效果如何,有没有数据支撑。忌讳问一句答一句、也忌讳背标准答案——面试官只要顺着「为什么」再追一层,就能分辨你是真做过还是背过。
编码助手类问题的应答:这类问题考的是工程判断而不是工具熟练度,可以按三层讲。日常怎么用:需求拆解、生成脚手架、补测试、重构、读陌生代码分别交给它多少,哪些环节必须自己写。遇到问题怎么处理:生成结果不可信时怎么验证——小步提交、跑单测、类型检查、code review、真实链路回归,上下文怎么给,什么时候必须停下来自己读源码。不同模型的差异:长上下文理解、工具调用能力、代码风格、幻觉率、成本与延迟,结论要落在「按任务选型、并保留人工把关」。别一味夸工具,也别一味贬低,面试官想确认的是你不会把没验证过的代码合进主干。
HR 面与综面:问题都能提前准备,核心是给出「稳定、可信、想清楚了」的信号。空窗期要简单、真实、向前看:说明客观原因,讲这段时间做了什么保持手感,再明确现在能全情投入,不要绕圈、也不要前后矛盾。OD 模式与「为什么不去别家」:先说你了解它的用工形式与转正路径,再讲你为什么接受——对应届生包容、能进真实项目、成长路径清楚;不要贬低这个模式,也别露出只是来过渡的态度。加班如实答,但给的是工作方式(排期、优先级、关键节点投入),而不是条件式讨价还价。综面更看合作与沟通,准备一个跨角色协作、能把冲突讲清楚的项目例子。