我申请了 Perplexity 的一个 staff SWE 职位,过了 phone screen 后,在 onsite 前拿到一个异步 coding assessment。具体是这样的。
OA 在他们自家的平台上,不是 HackerRank 或 Codesolver。两道题,总共 90 分钟。
第 1 题是图遍历。不花哨。DAG 上的 BFS/DFS,在一些约束下找最短路径。按大多数定义属于 LeetCode Medium。我大概 25 分钟做完。
第 2 题更难。字符串解析 + 状态机仿真。难点不在算法,在于要非常仔细读题。边界条件藏在题干里。happy path 我很快写出来了,剩下时间都在补 edge cases,我觉得这就是它的考点。
OA 里没有 AI/ML 专属算法。没有 gradient descent,没有 embedding 数学。就是很直接的算法 coding。我觉得如果你能稳定 30-35 分钟解决 LC medium 就没问题。难题不在 OA,在 onsite 的 coding 轮。
Onsite coding 是 45 分钟,一道题,有工程师在 call 上。我拿到的题有点像迷你 system design + coding:实现一个简化版 cache,带 LRU eviction + TTL 过期。经典题但他们做了扩展。我写完 baseline 后,他们让我改成 reads 也会重置 TTL。然后问:如果你要把这个 cache 序列化到磁盘怎么办。他们没有让我真的写序列化代码,只是讨论思路。感觉这轮在考我怎么处理扩展,而不只是「write the solution.(写出解法。)」
TL;DR:OA 就是直白的 LC medium,onsite coding 更偏对话式、迭代式。重点是思路清晰、能讲清取舍,而不是纯刷题速度。