最近很多人在投 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,幫助還是比較明顯。