这场 WeRide OA 做下来真的挺顺利的,三个题都在 Hackerrank 平台上完成,题型偏逻辑实现型,时间很充裕,全程基本没卡点。做完感觉这套题就是在考察思维清晰度和实现细节,题量适中、难度不高,但还是有一些地方能体现你对 DP 和字符串的敏感度。下面详细复盘一下三道题。

WeRide 面试流程
在分享 HackerRank OA 体验之前/之后,建议加一节 完整的流程概览,让读者对 WeRide 的面试节奏有更清晰的理解:
01) 在线申请与筛选
- 通过公司官网或招聘平台投递简历。
- 招聘团队会初步筛选符合岗位要求的简历,符合条件的候选人会收到 OA 邀请。
02) 在线评估(Online Assessment — HackerRank)
- OA 一般是 HackerRank 平台测试,常见时限约 90 分钟,题型包括 2–3 个算法/数据结构中等或难度题。
- 测试重点通常是 数组/图/树/动态规划等编程题,目的是筛选基础算法和编码能力。
建议明确写出你自己的题目类型或 Hackerrank 题目样例,再配合下面的流程描述,更有实际价值。
03) HR 初筛(简短电话/邮件沟通)
- 通过 OA 后,HR 会联系候选人进行短时间电话沟通,确认简历细节 & 基本匹配度。
- 这一轮通常不深挖技术,但会问一些简历背景、可开始日期等问题。
04) 技术面试(Virtual或Onsite)
- 多数候选人会进入后续 技术面试环节,常见为 1–3 轮:
- 代码题 + 系统设计
- 项目经验问答
- 专业领域深挖
- 每一轮面试通常 45–60 分钟,会问 LeetCode 类型题与实际工程问题。
05) 行为面 / 团队匹配
- 面试官会评估你的沟通能力、团队协作经验、工程判断和问题解决能力。
- 行为面问题可能涉及过去经历、冲突处理、项目决策等内容。
06) Offer 决策与通知
- 整个流程从 OA 到最终 VO 面试可能 耗时 1–3 周以上。
- 若所有评估通过,HR 会提供 Offer;若未通过,也可能通过邮件通知结果。
Q1: Date Mapping and Reformatting
Problem Statement:
Given a date string like "20th Oct 2025", convert it into the format "2025-10-20".
思路:
这题是非常标准的字符串处理题。
- 建立一个英文月份到数字的映射表,比如
"Jan" -> "01","Feb" -> "02","Oct" -> "10"。 - 拆分输入字符串,提取
day,month,year。 - 注意
day中会带 “st”、“nd”、“rd”、“th” 等后缀,要去掉。 - 最后拼接为
"YYYY-MM-DD"的格式返回。
代码量不大,但要小心处理输入格式。
Q2: Minimum Cost to Make Adjacent Numbers Unequal
Problem Statement:
You are given two arrays h[] and c[]. You can increase h[i] by 1 at a cost of c[i].
Find the minimum total cost required so that all adjacent elements in h are not equal.
思路分析:
这题看起来像贪心,但其实是 DP。
关键观察是:每个元素最多加两次就足以避免与相邻重复。
- 定义状态
dp[i][j]表示前i个数中,第i个加了j次后的最小花费(j ∈ {0,1,2})。 - 状态转移时,从前一个位置
dp[i-1][k]转移而来,只要(h[i]+j) != (h[i-1]+k)。 - 转移公式为:
dp[i][j] = min(dp[i-1][k] + j * c[i]) if h[i]+j != h[i-1]+k
- 最终答案取三种状态的最小值。
这个思路时间复杂度是 O(9n),实现简单又安全。
DP 初始化和边界条件是最容易丢分的地方。
Q3: Count Binary Substrings
Problem Statement:
Given a binary string s, count the number of substrings that contain consecutive 0s followed by consecutive 1s (or vice versa), where the number of 0s and 1s are equal.
思路解析:
这题其实和 LeetCode 上的经典题 “Count Binary Substrings” 一样。
- 首先遍历字符串,统计连续相同字符的长度,比如
"00011110"→[3, 4, 1]。 - 然后对相邻的两段长度
a[i], a[i+1],答案加上min(a[i], a[i+1])。 - 因为每个有效子串都是从中间的“01”或“10”边界扩展出去形成的。
举个例子:
s = "00110011"
groups = [2,2,2,2]
result = min(2,2)+min(2,2)+min(2,2) = 6
实现上非常高效,关键是想到“连续段长度”这个抽象。
WeRide OA 整体感受
整套 OA:
- 平台:Hackerrank
- 题量:3 道
- 时间:90 分钟
- 难度:中等偏易
- 考点:字符串处理、动态规划思维、基础逻辑
WeRide 的题风格挺统一的,逻辑清晰但容易有小坑,写的时候一定要注意输入细节,比如日期格式、DP 初始化条件、边界处理。
拿下 WeRide OA offer的关键助攻
我们在辅导 WeRide、TuSimple、Cruise、Zoox 等自动驾驶公司 OA / 面试时,都会提供 远程无痕联机 + 语音助攻系统。确保所有测试用例 100% 通过,不通过所有测试用例不收费。我们通过远程控制软件 ToDesk 进行,确保无痕且不会被检测到。
这种方式特别适合 Hackerrank / Codility / CodeSignal 平台题型,
已经帮助多位同学在 WeRide、Cruise、MathWorks 等 OA 实现 首战全AC → 拿下面试邀请。
如果你最近也在准备自动驾驶 / Quant / 大厂 OA,可以了解下我们的OA助攻方案,
真正做到「不卡点、不失误、稳稳上岸」。