最近很多人在投 FinTech 公司时都会遇到 Ramp OA 。相比传统大厂,Ramp 的题风其实更偏工程实战,不只是单纯刷 LeetCode。整体来说,题目数量不算特别多,但时间压力比较明显,而且会比较关注代码质量、边界处理和实际业务理解能力。
我这次做的是 SWE OA,整体难度大概在 LeetCode Medium 左右,但如果平时只刷模板题,第一次做 Ramp 的题会有点不适应,因为它经常把题目包装成真实业务场景。

Ramp OA 流程
整个 OA 是在线 coding。
常见配置:
| 配置 | 内容 |
| 平台 | CodeSignal |
| 时间 | 90 分钟 |
| 题型 | Progressive System Design Coding |
| 形式 | 4 Levels |
| 语言 | Python / Java / JS / TS / C++ 等 |
Ramp OA 高频真题分享-programhelp整理
Level 1 基础文件操作
功能接口
add_file(name: str, size: int) -> bool
- 作用:添加新文件
- 规则:同名已存在则失败;成功返回
True,失败返回False
get_file_size(name: str) -> int | None
- 作用:查询文件大小
- 规则:存在返回大小,不存在返回
None
delete_file(name: str) -> int | None
- 作用:删除指定文件
- 规则:删除成功返回文件大小,不存在返回
None
Level 2 前缀查询・取最大文件
功能接口
get_n_largest(prefix: str, n: int) -> list[str]
- 作用:筛选前缀匹配的文件,返回前 N 大文件
- 返回格式:
["文件名(大小)", ...] - 排序规则:
- 按文件大小降序
- 大小相同按文件名字典序升序
- 边界:无匹配返回空列表;不足 N 个则全返回
Level 3 多用户管理
功能接口
add_user(user_id: str, capacity: int) -> bool
- 作用:新增用户并设置存储容量上限
- 规则:用户已存在返回
False
add_file_by(user_id: str, name: str, size: int) -> int | None
- 作用:指定用户上传文件
- 规则:重名 / 容量不足返回
None;成功返回剩余容量 - 补充:默认
admin用户无容量限制
merge_user(user_id_1: str, user_id_2: str) -> int | None
- 作用:将用户 2 合并到用户 1
- 规则:
- 用户 2 文件归属转移给用户 1
- 用户 2 容量上限合并至用户 1
- 合并后删除用户 2
Level 4 备份与恢复
功能接口
backup_user(user_id: str) -> int | None
- 作用:备份当前用户所有文件信息
- 规则:覆盖旧备份;用户不存在返回
None;成功返回备份文件数
restore_user(user_id: str) -> int | None
- 作用:恢复用户至最新备份状态
- 规则:
- 无备份则清空用户所有文件
- 恢复时遇同名已存在文件则跳过
- 用户不存在返回
None;成功返回恢复文件数
- 补充:合并用户不影响主用户备份、被合并用户及备份一并删除;恢复不改动用户容量上限
高效备战 Ramp OA
本次备战 Ramp OA 过程中,我主要依托 Programhelp 整理的 OA 高频题库进行针对性刷题备考。
他们整合了海量优质备考资料,包含 Ramp OA 高频原题、HackerRank 真题复盘合集,还专门梳理了 FinTech 赛道企业的 coding 出题风格,同时整理出高频交易模拟通用模板、OA 整体时间分配应试策略,题库题型和正式 OA 原题高度贴合。
除了题库之外,他们还有在线 OA 辅导、 远程 coding assistance 、Mock interview、实时语音提醒协助等服务,对于时间压力特别大的 OA,帮助还是比较明显。