准备 Snapchat SDE ,先记住一句话:它家 coding 主要考 hard,但这些 hard 题高度集中,翻来覆去就那么几道,把 tag 题库刷透,撞原题概率很高。还有个贯穿全程的硬要求——几乎每轮 coding 都要手写能 run 的 test,边界覆盖是实打实计分的,尤其矩阵输入输出的题,留够时间写测试。

电面
前十五分钟聊简历,然后一道编程题。我抽到 LC 394 解码字符串,意外地不是 hard。这题用栈处理嵌套结构:两个栈分别存重复次数和已拼好的前缀,遇到左括号压栈清空、遇到右括号出栈把这一段按次数重复接回去,做过十分钟能写完。Snap 电面有时也给纯 BFS,比如 LC 752 开锁,把每个四位状态当图节点做层次遍历、blocker 当已访问跳过即可,同样要手写 unit test。
Virtual Onsite
Snap 的 VO 每轮都是同一套路:前十五分钟 BQ,然后 coding 或系统设计。别把 BQ 当暖场,它每轮都计分。我这几轮抽到的题正好是 Snap 最高频的几道。
LC 803 砖块掉落
头号常客,难点在思维方向:正着逐个敲、判断哪些掉落很难维护,得逆向思维,把所有敲击倒过来一个个加回去,用并查集维护「与顶部连通的稳定砖块集合」,每加回一块看它让多少悬空砖块重新连回顶部,那个增量就是本该掉落的数量。这题矩阵输入输出,写 test 要覆盖越界、重复敲击、敲空格子等边界。
LC 1293 网格最短路径加消除障碍
原题是带状态 BFS,状态含行、列、剩余消除数,visited 也要带上剩余消除数这一维。这轮重点在 follow-up,很能体现 Snap 风格:移除消除设定,改成每个格子带一个 release 时间,只有格子 release 后才能往下走,求到终点的最小时间。比如全局时间 5、格子数值 7,因为 5 小于 7 要等 2 个单位;但全局时间已到 8、格子数值 7,就不用等直接走。本质是进入一个格子的实际到达时间等于「当前时间加一」和「格子 release 时间」中的较大值,边权不再均等,BFS 失效,得换成按到达时间排序的 Dijkstra。能当场识别这个「均等边权 BFS 转带权 Dijkstra」的切换,是这轮的得分点。
图论三件套:399、253 与连通性设计
LC 399 除法求值,图上乘权重或带权并查集。LC 253 会议室变种,去重后扫描线或最小堆。还有一道 unbounded 2D matrix 连通性设计题值得单独提:要实现 areConnected 和 minStep 两个查询,规则是同行或同列的点能互相走、只算一步。这题的坑是两个接口得用两种结构——areConnected 用并查集(加点时和同行同列的点 union),但 minStep 并查集给不出,只能用 BFS:把点当节点、同行同列连权 1 的边,从起点逐层扩展。想清楚「连通性归并查集、最短路归 BFS」,后续 follow-up(大规模存储、动态加点)自然往稀疏矩阵加增量更新答。
嵌套事务 KV Store(偏工程)
有的场次会出偏工程的题,比如实现支持嵌套 transaction 的 KV store。干净解法是用栈存 map,每开一个事务压一层、写操作只改栈顶,commit 就把栈顶两层合并、abort 就直接 pop 掉栈顶。顺带一个教训:我认识的候选人这道 test 全过,周一还是收到拒信——coding 写对不等于整场过,每轮的 BQ 和沟通同样计分。
系统设计
题目很贴 Snap 自己的业务:简化版 Robinhood(只设计 track stock price)、TikTok 短视频上下翻页(给个 ML blackbox 做推荐,重点问 scale 和 media 存储)、流媒体广告系统。架构被简化后,面试官会在数据一致性、峰值流量、存储选型上反复追问。还有一道拓扑排序题很典型:给数据处理流水线的任务依赖,求可行执行顺序,用 Kahn 算法即可,题目点出「同层任务可并行」,答的时候顺带提一句按层输出会加分。
Snapchat interview 整体感受
Snap 不玩题海,玩深度和稳定性。高频题范围很窄,394、803、1293、752、399、253 加拓扑排序基本覆盖大半。真正拉开差距的是三件事:边界处理(每轮都要手写能 run 的 test)、识别算法切换的能力(1293 转 Dijkstra、连通性题里两种结构各管一摊)、以及别忽略每轮的 BQ。
如果你也在准备 Snap, Interview Show 提供北美技术岗的面试辅助,团队来自一线大厂。Snap 这种高频题集中、每轮固定 BQ 加 coding 的结构特别适合针对性准备。有需要的同学欢迎私信,也可以找我们做免费评估,按背景和时间给方案。