上个季度我走了 OpenAI online assessment(OA)和 live coding 轮。分享一下形式和难度,因为我在网上找到的信息不是 2023 的就是很笼统。
Online assessment 形式: HackerRank,90 分钟,2 题。可以用 Python、JavaScript、Java、C++、Go。我用的是 Python。
题 1:图遍历。具体是带一些边遍历约束的 shortest-path 变体。感觉像 LC medium-hard。BFS 加了一点变化。
题 2:字符串处理。滑动窗口,加一些接近 regex 的逻辑。说实话看懂模式后更像 medium,但我差点没抓到,因为题干写得很密。
没有选择题,没有 debug 题,也没有那种「修这段代码」的东西。就两道算法题。我还剩大概 10 分钟交卷。
Live coding 轮(完整流程里有两轮): 线上,一位面试官,共享 coding 环境(CoderPad 或类似)。每轮 45-60 分钟。一题,有 follow-ups。
我的观察: 他们希望你在写代码前先讲清思路。如果你上来就开始敲,明显是个黄牌(recruiter 在反馈里提过这点)。 边界条件很重要。我的第二轮题本身挺「简单」,但面试官会在过程中不断加约束。标准的扩展套路。 代码质量:命名、结构清晰。不会吹毛求疵,但会看。我因为在一个需要表达语义的地方用了 x 这种变量名,被指出如果写成 remaining_budget 会更清楚。
难度对比 LeetCode:OA 更偏 medium-to-hard。Live coding 经常是「medium 但靠 follow-up 变难」。我不觉得比 Google 更难,但肯定也不更容易。
我花了大概 3 周做针对性的 LC:动态规划、图、树、滑动窗口。覆盖了大概 80% 会出现的内容。