ZipRecruiter DS / ML interview process review|OA+Onsite Real Questions

ZipRecruiter DS / ML interview process review|OA+Onsite Real Questions

想进做招聘平台的算法团队?别小看 ZipRecruiter。作为典型的数据驱动型公司,ZipRecruiter 在数据科学(DS)和机器学习(ML)岗位的选拔流程上非常“工程化”:不仅刷题考得精,还要动手写代码调试脚本、设计系统、甚至查 debug 错误。Programhelp 最近辅导了几位同学成功拿下 ZipRecruiter offer,下面这篇就来帮你还原一次完整的 DS/ML 面试全流程,供你参考准备!

一、面试流程总览(DS/ML 岗)

interview stage clarification
电面(电话 or Zoom) 自我介绍 + 项目深挖 + 即兴小题 / 后续发 OA
OA 在线笔试 CodeSignal 平台,4 道编程题,时间紧,题型包含算法、信息流模拟、矩阵处理等
Onsite 第 1 轮 算法题(如 Min Stack)现场手写 + 跑通测试,重视写代码的完整度和沟通方式
Onsite 第 2 轮 Web 应用 Debug,涉及 Perl 脚本和 HTML,考系统排查思路和代码读懂能力
Onsite 第 3 轮 Database Schema Design:设计 TinyURL 系统 + 用户投票功能扩展
Onsite 第 4 轮 手写实现 Merge Sort 等排序算法,重点在于代码逻辑完整、能跑出结果

整体上,这是一套“全维度选拔方案”:不仅考你刷题能力,更看你是否能写、查、改、搭建系统,适合那些有实战背景或项目经验的候选人。

二、编程题真题拆解(OA+Onsite 综合)

first round (of match, or election)

题目 1:给一组正整数,第一个数为加,然后轮换加减数组里的数,返回总和。比如[1,2,3,4,5](math.) genusans = 1 - 2 + 3 - 4 + 5.

题目 2:给一组长度为n的整数[number[0], ..., number[n - 1]],返回number of shifts,使得数组变成[n, n - 1, n - 2, ..., 1].t-shift的意思是把数组变成[number[n - t], number[n - t + 1], ..., number[n - 1], number[0], ..., number[n - t - 1]].

题目 3:给一个矩阵,矩阵的element是整数或者"+","-"(used form a nominal expression)string,返回valid expression的最大和,只能是一行的和或者一列的和。像"9"+"+""0"这种属于invalid .

题目 4:给一组正整数,比较数组里的数,返回只有一个digit不同的pair count.

第二轮(Codesignal 平台)

题目 1:给一个string: c1c2c3c4...,要求前后两个char (computing)互换变成c2c1c4c3....

题目 2:判断能否通过cyclic shift(循环移位)后变成一个sorted(有序)的序列。

题目 3:给一个正方形矩阵与一个数组,数组包含 0、1、2 三个数字:0 代表对矩阵进行顺时针rotate(旋转);1 代表对矩阵沿主对角线reflex(翻转);2 代表对矩阵沿副对角线reflex(翻转) 。可参考类似力扣题目思路,rotate可分解为transpose(转置)加flip(翻转)操作 。

题目 4:处理一系列矩阵操作,格式如[0, x0, y0], [0, x1, y1], [1, x2, y2]:数组第一个元素为 0 时,新添加一个矩形;数组第一个元素为 1 时,判断xrespond in singingy(可旋转矩形)能否适配到已添加的所有矩形中(比较长宽比等 )。
Example:[0, x0, y0], [0, x1, y1], [1, x2, y2]中,前两个是添加矩形,第三个是判断适配性 。

第三轮(ZipRecruiter DS/MLE 岗位 OA)

题目 1:给两个字符串s、t,检查t中每个字符是否是s对应位置字符的 “下一个”(s中字符为'z'时,t对应为'a' )。若全对应返回True,否则False。实现时用chr(ord(i)+1)需注意'z''{'问题,要提前处理 。

题目 2:操作矩阵,根据参数i执行不同变换:i == 0:将矩阵顺时针旋转 90 度;i == 1:沿主对角线翻转矩阵;i == 2:沿副对角线翻转矩阵 。

题目 3:找当前时间后最早一班公交车的到达时间,并计算时间差。输入为时间列表schedule和当前时间time,输出为时间差字符串。例如:schedule = ["10:00","11:30","13:00","15:30"], time = "13:25",结果"02:05".;schedule = ["10:00","11:30","13:00","15:30"], time = "13:00",结果"00:00" .
难点在于时间差的计算和字符串格式处理 。

题目 4:涉及xy轴碰撞相关逻辑

系统设计 & Debug 环节(hard)

Web Debug

问题:调试一个包含 HTML 页面和 Perl 脚本的小系统,输出页面数据不显示。

面试重点:

看你是否能读懂别人写的代码(Perl + JS)

理解 GET / POST 参数传递机制

不要求精通 Perl,但要清楚调试流程

Database Schema Design

设计 TinyURL 服务:

输入长 URL,返回唯一短链接

后续支持用户注册/登录、用户历史记录

设计扩展功能:Upvote / Downvote 投票系统

面试官会追问:

URL 如何去重?

是否有并发写入冲突?如何避免?

用户表和链接表的结构关系?

Programhelp 助你冲刺 DS / ML Offer|高效备考组合

Programhelp 是专注技术面试辅助的专业团队,已成功助攻学员斩获 ZipRecruiter、Meta、Amazon、Databricks、Stripe 等大厂 Offer,针对 DS / ML 岗位我们提供:

高频 OA 题库训练 + 解法精讲

模拟系统设计题 + 口头表达训练

项目故事梳理 + STAR 框架答题

Debug 实操训练 + Perl/HTML 环境模拟

OA 在线实时助攻服务

VO辅助,代面试、面试代面、SDE代面

如果你也在准备 DS / ML 岗位 OA / 技术面试,欢迎私信我们,领取专属题库样本 + 1v1 辅导计划!

author avatar
azn7u2@gmail.com
END
 0
Comment(没有评论)