Question Study

Rippling 面试题专题

本地面经库有 53 条来源 URL 去重后的记录,其中 53 条有正文;目前整理出 36 道代表练习题,其中 36 道已完成独立深文。题目清单仍在逐帖核对和补充。

Reading Guide

如何使用这份题目清单

题目根据面经方向重新表述,其中可能包含站内攻略建议的训练题;它们不是公司的官方题库,也不保证下一场面试重复出现。

先分岗位

Rippling 的不同岗位和团队可能考不同内容。先核对 JD 与面试邀请,再选对应题型。

合并同题变体

相同核心考点只保留一条,后续的附加约束放在原题里练,避免把同一道题当成多道题刷。

练习顺序

先口述输入、输出和边界,再写核心方案;最后解释复杂度、失败路径和面试官可能追加的约束。

Deduplicated Question Map

按考点去重的代表题

同一题的追加条件合并在一条里。题目清单用于确定训练范围;具体流程和准备优先级见公司攻略。

OOD · 01

设计 file system,支持 create file/dir、delete、list、search、deep nested path、错误码和路径 normalize

设计 file system,支持 create file/dir、delete、list、search、deep nested path、错误码和路径 normalize。

查看上方解题路线 ↑

阅读这道题的独立深文 →
Access Control · 02

设计 Resource Access Control,支持 role、permission、resource hierarchy、deny/allow 优先级和 audit log

设计 Resource Access Control,支持 role、permission、resource hierarchy、deny/allow 优先级和 audit log。

解题切入:权限决策需要确定资源继承和 deny/allow 优先级;每次判断保留可审计的规则版本与理由。

阅读这道题的独立深文 →
Scheduler · 03

设计 distributed task scheduler,处理 lease、heartbeat、retry、worker crash、DLQ 和幂等执行

设计 distributed task scheduler,处理 lease、heartbeat、retry、worker crash、DLQ 和幂等执行。

解题切入:调度器以持久任务和 lease 为核心;heartbeat 超时后重新投递,任务副作用靠幂等键保护。

阅读这道题的独立深文 →
Payroll · 04

设计 payroll ledger,支持 pay frequency、tax rule version、审批、付款和 no duplicate payments

设计 payroll ledger,支持 pay frequency、tax rule version、审批、付款和 no duplicate payments。

解题切入:工资计算规则必须带生效版本,审批与付款分离;付款 idempotency key 是防重复发薪的最后防线。

阅读这道题的独立深文 →
Expense OOD · 05

给 Expense 和一组 Rule,对每笔费用运行所有规则并返回全部违规

给 Expense 和一组 Rule,对每笔费用运行所有规则并返回全部违规:全局上限、餐馆上限与禁止娱乐如何扩展到 trip 规则?

解题切入:每笔 Expense 都要运行全部单笔 Rule 并保留每条违规 ID;金额大于阈值才违反,trip 聚合规则需先取得完整 trip 上下文。

阅读这道题的独立深文 →
Delivery Coding · 06

Delivery Billing 三段题

Delivery Billing 三段题:独立订单费用、按结束时间截止结算、过去 24 小时最大同时活跃的不同司机数怎样实现?

解题切入:Delivery 重叠订单逐单计费,记录时累计 total/unpaid;按 endTime 小根堆结算防重复;24h 并发人数先合并同司机区间再全局扫线,不能数订单数。

阅读这道题的独立深文 →
System Design · 07

设计 News Aggregator

设计 News Aggregator:五万发布源、topic/publisher 订阅、全局趋势与个性化 feed;热点发布源如何在 push/pull 间取舍?

解题切入:News Aggregator 分发布源摄入/去重、订阅召回、全局趋势和个人 feed;50k×100=5M 篇/日仅约 58/s 均值,热点源用有限预推+读时合并控制 fanout。

阅读这道题的独立深文 →
OOD · 08

设计 Article Voting Tracker

设计 Article Voting Tracker:同向重复投票不计,反向翻转分数如何更新?最近三次 flip 与 Top K 怎样维护?

解题切入:Article Voting 以 user×article 记当前 -1/0/+1;同向重复不变,翻转按新值减旧值更新分数并记 flip。最近三次投票与最近三次翻转须分接口。

阅读这道题的独立深文 →
Data System Design · 09

用户行为监控与事件富化

用户行为监控与事件富化:移动/浏览器 SDK 如何上报,raw 事件怎样支持实时看板、迟到修正与异步仓库查询?

解题切入:用户行为监控把 SDK 批量入口、耐久 raw、去重/富化、实时预聚合与异步仓库查询分层;事件时间、维表版本、迟到修正和隐私边界要可回放核验。

阅读这道题的独立深文 →
System Design · 10

集中式 Data Log

集中式 Data Log:各源如何可靠传输到中心,支持短时快速查看与最长三个月检索,并控制索引/存储成本?

解题切入:集中式日志先可靠批传与缓冲,热层按租户/时间/trace 建快速索引,冷层保存最长三个月的压缩原始数据;短时查与长期查可设不同延迟目标。

阅读这道题的独立深文 →
Logger OOD · 11

Logger 支持移除子串、截断、capitalize、存储与多关键词检索

Logger 支持移除子串、截断、capitalize、存储与多关键词检索;按顺序去重与读多写多优化怎样明确契约?

解题切入:Logger 文本操作先定纯函数/组合顺序,搜索先定 AND/OR 与大小写;训练版按全部关键词子串匹配,按消息文本稳定去重,读多时再考量倒排索引写成本。

阅读这道题的独立深文 →
Staff System Design · 12

邮件 Package Tracking Widget

邮件 Package Tracking Widget:怎样异步抽运单号、合并多封邮件、保持 active shipment 状态新鲜而不给摄入和收件箱读路径增加明显延迟?

解题切入:包裹 Widget 让邮件入库只发轻量事件,异步抽运单并按 user+carrier+number 合并;状态 webhook/轮询更新本地读模型,Inbox 不同步调外部 API。

阅读这道题的独立深文 →
OOD / Coding · 13

内存 KV 支持 get/set/delete 与嵌套事务

内存 KV 支持 get/set/delete 与嵌套事务:子 commit 合并父层、父 rollback 不改全局,怎样实现读穿透和删除哨兵?

解题切入:嵌套 KV 事务以每层写集覆盖读视图,子 commit 合并父层、父 rollback 丢整层;删除哨兵遮蔽祖先值,最外层 commit 才改全局。

阅读这道题的独立深文 →
Grid Coding · 14

不规则网格中 `1` 连成房屋,求每个连通块左上/右下边界并转 A2 坐标

不规则网格中 `1` 连成房屋,求每个连通块左上/右下边界并转 A2 坐标;目标行长度不同如何防越界?

解题切入:不规则网格房屋按四邻接训练契约逐格 BFS,目标行用自己的长度检边界;每连通块维护 min/max 行列,外接框不代表内部全为房屋。

阅读这道题的独立深文 →
Coding · 15

两个非降序数组的中位数

两个非降序数组的中位数:如何在较短数组上二分分割,让左边个数固定且左最大不大于右最小?

解题切入:双有序数组中位数对较短数组二分切点 i,另一数组切点由左侧目标数量决定;满足两侧交叉次序后奇数取左最大、偶数取两中心平均。

阅读这道题的独立深文 →
System Design · 16

第三方 Hotel Booking

第三方 Hotel Booking:酒店房型如何导入和按经纬度检索?平台缓存房态与外部酒店最终确认怎样保持预订一致性?

解题切入:Hotel Booking 本地索引负责地理候选与缓存报价,第三方酒店最终掌握房态;预订需外部实时核对/确认、稳定幂等键和超时对账,缓存命中不保证有房。

阅读这道题的独立深文 →
OA Complexity · 17

外层 i、内层 i²×i 的三重循环为什么总操作数为 Σi³=Θ(n⁴)?

外层 i、内层 i²×i 的三重循环为什么总操作数为 Σi³=Θ(n⁴)?

解题切入:三层循环不能只数层数:固定 i 有 i²×i=Θ(i³) 次操作,Σ_{i<n}i³=Θ(n⁴)。

阅读这道题的独立深文 →
OA Heap · 18

层序数组怎样判断合法 Max Heap?父节点和两个孩子的关系、完全二叉树结构分别如何检查?

层序数组怎样判断合法 Max Heap?父节点和两个孩子的关系、完全二叉树结构分别如何检查?

解题切入:Max Heap 的层序数组天然完整,逐子节点核 parent≥child 即可;根最大不足以证明全堆合法。

阅读这道题的独立深文 →
OA Graph · 19

给从 0 开始的候选 DFS 发现顺序,如何按活跃递归栈和未访问邻居判断它是否可能?

给从 0 开始的候选 DFS 发现顺序,如何按活跃递归栈和未访问邻居判断它是否可能?

解题切入:DFS 候选发现序列用活跃栈模拟:若下个点不是栈顶邻居,只能在栈顶没有未访问邻居时弹栈回溯;固定邻接顺序需按原顺序验证。

阅读这道题的独立深文 →
OA Heap · 20

给数组执行 Build Max Heap 后,如何自底向上 sift-down 得层序结果,为什么整体 O(n)?

给数组执行 Build Max Heap 后,如何自底向上 sift-down 得层序结果,为什么整体 O(n)?

解题切入:Build Max Heap 从最后非叶节点反向 sift-down,各子树先成堆;总时间 O(n),结果满足堆但不等于完全排序。

阅读这道题的独立深文 →
OA API · 21

分页 REST API 中按 brand 找 price/weight 比率最大的商品

分页 REST API 中按 brand 找 price/weight 比率最大的商品:如何扫完全部变体,且比率同分取较小 productNumber?

解题切入:Costliest Chocolate 逐页扫描目标品牌所有变体,price/weight 用交叉乘法精确比,平局按较小 productNumber;原分页 JSON 格式需核。

阅读这道题的独立深文 →
OA Sliding Window · 22

Consistent Logs

Consistent Logs:全局最小出现频次 k 给定后,最长连续窗口的最高频次恰好等于 k 怎样在线性时间求?

解题切入:Consistent Logs 先算全局实际元素的最小频次 k;滑窗只在新值计数>k 时左缩,最长所有计数≤k 的窗口必能达到等号。

阅读这道题的独立深文 →
BQ / Project · 23

展示最有 ownership 和业务影响的项目

展示最有 ownership 和业务影响的项目:如何说明本人决策、技术取舍、时间线、结果基线与冲突处理?

解题切入:项目深挖按客户问题、本人职责、两方案取舍、时间线和可核业务影响组织;slide 页数随具体轮次伸缩,不把团队全部成果归个人。

阅读这道题的独立深文 →
BQ · 24

为什么想加入 Rippling、为何寻找新机会?用目标团队职责和真实企业软件/客户项目证据回答

为什么想加入 Rippling、为何寻找新机会?用目标团队职责和真实企业软件/客户项目证据回答。

解题切入:Why Rippling 从目标 JD 的具体企业工作流出发,映射自己实际项目的约束和结果,并诚实区分换工作动机与加入该组的原因。

阅读这道题的独立深文 →
FDE BQ · 25

生气的客户受到影响时,怎样确认事实、止损升级、持续更新、验证恢复并重建信任?

生气的客户受到影响时,怎样确认事实、止损升级、持续更新、验证恢复并重建信任?

解题切入:生气客户 BQ 先确认影响和事实、设 owner/更新节奏、技术止损、恢复验收与复盘,不用情绪安抚代替修复。

阅读这道题的独立深文 →
BQ / AI · 26

平时如何使用 AI 辅助编程?如何独立验收、保护敏感数据并遵守这一轮的工具规则?

平时如何使用 AI 辅助编程?如何独立验收、保护敏感数据并遵守这一轮的工具规则?

解题切入:AI 使用 BQ 给真实任务、允许的上下文、独立测试和总耗时;不同面经 AI 规则不同,以本轮明示规定为准。

阅读这道题的独立深文 →
FDE BQ · 27

你如何表现好奇心?用客户需求发现、可证伪假设、验证和改变方案的真实经历说明

你如何表现好奇心?用客户需求发现、可证伪假设、验证和改变方案的真实经历说明。

解题切入:FDE 好奇心 BQ 用客户工作流提问、证据验证、原假设被推翻后的方案调整和真实结果说明,不只宣称爱学习。

阅读这道题的独立深文 →
MLE / Search · 28

未知凸函数求最小值

未知凸函数求最小值:无导数黑盒下怎样确认定义域、精度并用三分缩小区间?整数版本怎样处理平坦极小值?

解题切入:未知凸函数先问定义域与精度;有界黑盒三分比较两探针并保留极小点所在区间,整数尾部枚举且明确平局规则。

阅读这道题的独立深文 →
Coding / OOD · 29

Task Manager 按 description+due date 去重,筛 open/unassigned,再按截止日、高优先级与创建时间排序

Task Manager 按 description+due date 去重,筛 open/unassigned,再按截止日、高优先级与创建时间排序;重复项保留谁、先筛还是先去重?

解题切入:Task Manager 先核对去重键、重复代表、筛选顺序和多键排序优先级;公开预览可辨主线,完整输出格式未公开,训练实现需明示假设。

阅读这道题的独立深文 →
OOD / Cards · 30

比较两人手牌

比较两人手牌:同为三条时 8883 为什么胜 7773?如何通过 add_type 注册新牌型,并在 evaluate 中应用自定义 evaluation_orders?

解题切入:手牌 OOD 将匹配器、牌型强弱和同型数字比较拆开;新类型按 evaluation_orders 决定强弱,牌数、花色和 Joker 等未公开规则不擅自补齐。

阅读这道题的独立深文 →
Frontend JS · 31

给同步语句、Promise.then、queueMicrotask 和 setTimeout,怎样逐步推导执行顺序?

给同步语句、Promise.then、queueMicrotask 和 setTimeout,怎样逐步推导执行顺序?

解题切入:事件循环先跑完同步栈,再按入队顺序清空 Promise/queueMicrotask,最后才轮到 timer;宿主和嵌套任务约束应先问清。

阅读这道题的独立深文 →
Frontend JS · 32

var 与 let 在块作用域、TDZ 和 for 循环闭包上有何差异?

var 与 let 在块作用域、TDZ 和 for 循环闭包上有何差异?

解题切入:var 是函数作用域且循环闭包共享绑定;let 是块作用域、每轮新绑定,声明前读取落入 TDZ 并抛 ReferenceError。

阅读这道题的独立深文 →
Frontend JS · 33

对象方法被提取成函数后 this 如何变化?call 与箭头函数的词法 this 如何比较?

对象方法被提取成函数后 this 如何变化?call 与箭头函数的词法 this 如何比较?

解题切入:普通函数 this 看调用点,对象方法提取后失去原接收者;箭头函数捕获词法 this,后续 call 不改写它。

阅读这道题的独立深文 →
Frontend CSS · 34

用 HTML/CSS 画 2×2 四个正方格

用 HTML/CSS 画 2×2 四个正方格:Grid、aspect-ratio 与窄屏宽度如何协同,避免 gap 造成溢出?

解题切入:四方格用两列 Grid 与单格 aspect-ratio:1,容器宽度不超屏幕;原帖没有尺寸和色彩要求,训练值与视觉验证分开注明。

阅读这道题的独立深文 →
Web API · 35

实现可运行的简化 Quora

实现可运行的简化 Quora:发帖、查帖和按用户 upvote/downvote;如何处理重复/反向投票、HTTP 错误与并发?

解题切入:Quora API 把 HTTP 解析路由与帖子/投票状态分层;每用户每帖旧值到新值按差量改分,身份和投票写入必须在生产中用真实认证与事务保护。

阅读这道题的独立深文 →
Graph Coding · 36

汇率边 1 A=r B 时如何建正逆边,用 DFS 预处理多跳比率并回答换算查询?矛盾环和两日变体如何界定?

汇率边 1 A=r B 时如何建正逆边,用 DFS 预处理多跳比率并回答换算查询?矛盾环和两日变体如何界定?

解题切入:汇率图每条边有正向比率和倒数边;单快照一致图 DFS 建连通块权重后可 O(1) 换算,原帖未给两日或最大收益细节。

阅读这道题的独立深文 →

Next Step

把题目放回面试流程

题目只是准备的一部分;按公司攻略核对轮次、岗位差异和常见失分点。

查看 Rippling 面试全攻略 →
✓已复制微信号!