Ramp 2026 OA |CodeSignal真題解析 + 4道Coding題思路還原 + 高效透過指南

我剛把 Ramp 2026 OA 刷完,趁著記憶還熱,來給大家做一波完整覆盤。這場筆試是在 CodeSignal 上完成的,總共 90 分鐘 4 道 coding,全程需要開攝像頭監考,中途不能暫停,整體節奏還是挺緊的。如果你是第一次做這種連續 4 題 + 強監考的 OA,壓力會比普通 HackerRank 明顯大一截。

Ramp 2026 OA |CodeSignal真題解析 + 4道Coding題思路還原 + 高效透過指南

Level 1

雲端儲存系統需要支援檔案操作:

  • add_file(self, name: str, size: int) -> bool:向儲存中新增一個名為 name 的新檔案,size 是該檔案所需的記憶體位元組數。若同名檔案已存在,則操作失敗。成功新增檔案返回 True,否則返回 False
  • get_file_size(self, name: str) -> int | None:若檔案 name 存在則返回其大小,否則返回 None
  • delete_file(self, name: str) -> int | None:刪除檔案 name。成功刪除則返回被刪除檔案的大小,若檔案不存在則返回 None

解題思路:

level1,要你維護一個 檔名->檔案大小 的對映,需要支援增刪查,並且按要求返回 bool 或者 None,就用雜湊表管理一下狀態就行了,把重複新增還有不存在刪除這兩類邊界條件判斷清楚就行了。

Level 2

實現一個操作,用於檢索具有特定字首的檔案統計資訊:

  • get_n_largest(self, prefix: str, n: int) -> list[str]:返回名稱以 prefix 開頭的前 n 個最大檔案的列表,格式為 ["()", ..., "()"]
    • 檔案按大小降序排序;若大小相同,則按檔名字典序升序排序。
    • 若無符合條件的檔案,返回空列表;若符合條件的檔案數少於 n,則返回全部符合條件的檔案。

解題思路:

就新增了要你求前n大,就是在已經有的檔案裡面,做字首過濾,然後取出前n大就行了,按大小降序,檔名升序的順序排序,就直接在我們存的雜湊表裡面篩,再排個序,最後按指定格式返回字串。

Level 3

實現多使用者支援,所有使用者共享同一個檔案系統,但每個使用者有儲存容量限制:

  • add_user(self, user_id: str, capacity: int) -> bool:新增一個新使用者,capacity 為其儲存容量上限(位元組)。若 user_id 已存在則操作失敗。成功建立返回 True,否則返回 False
  • add_file_by(self, user_id: str, name: str, size: int) -> int | None:功能與 Level 1 的 add_file 一致,但檔案歸 user_id 所有。若新增後會超出使用者容量限制,則無法新增。成功新增則返回使用者剩餘容量,否則返回 None
    • 注意:Level 1 中 add_file 操作預設由 user_id = "admin" 執行,admin 擁有無限儲存容量。
  • merge_user(self, user_id_1: str, user_id_2: str) -> int | None:將 user_id_2 的账户合并到 user_id_1user_id_2 的所有文件所有权转移给 user_id_1,剩余容量也加到 user_id_1 的容量限制中。合并成功后 user_id_2 被删除,返回 user_id_1 合并后的剩余容量;若任一用户不存在则返回 None

解題思路:

需要在全局文件系统的基础上,增加用户维度的容量管理与账户合并逻辑。我们可以用多个哈希表分层维护:一个全局哈希表记录所有文件归属与大小,再用用户专属哈希表记录每个用户的已用容量和总容量限制。新增用户时检查 ID 是否重复;添加文件时校验用户容量是否足够,满足条件才写入并更新剩余容量;合并账户时,将被合并用户的文件所有权转移、容量累加,最后删除被合并用户,全程保证文件状态与用户容量数据的一致性。

Level 4

實現使用者檔案備份功能:

  • backup_user(self, user_id: str) -> int | None:備份 user_id 所有檔案的當前狀態(檔名和大小),備份儲存在獨立系統中,不受後續檔案操作影響。若該使用者已有備份則覆蓋。成功備份返回備份檔案數量,若使用者不存在則返回 None
  • restore_user(self, user_id: str) -> int | None:將 user_id 的檔案狀態恢復到最近一次備份。若從未備份過,則刪除該使用者所有檔案。若因其他使用者已存在同名檔案導致無法恢復,則忽略該檔案。成功恢復返回恢復的檔案數,若使用者不存在則返回 None
    • 注意:merge_user 不影響 user_id_1 的備份,user_id_2 及其備份會被刪除。
    • 注意:restore_user 操作不影響使用者的容量限制。

解題思路:

在 Level 3 的基礎上疊加備份與恢復功能,需要額外維護使用者備份快照的獨立儲存。備份時將使用者當前所有檔案的狀態(名稱和大小)完整儲存為快照,覆蓋舊備份;恢復時先清空該使用者的當前檔案,再逐一遍歷快照嘗試恢復,遇到全域性已存在的同名檔案則跳過,最終統計成功恢復的檔案數,同時保證備份資料不受後續操作影響,且恢復操作不改變使用者的容量限制。

關於 Ramp OA 怎麼過

Ramp OA 時間緊、隱藏 case 多、還開攝像頭,不少同學容易卡住。 我已經幫助數百名各種背景的學員順利上岸。需要幫助的可以直接找Programhelp,團隊成員來自牛津、普林斯頓、北大及 Amazon/Google/阿里,所有 OA 代寫 和 CodeSignal 代考均親自操作。所有測試用例 100% 透過,不透過全額退款。24-48小時加急,直接對接。

author avatar
Jory Wang Amazon資深軟體開發工程師
Amazon 資深工程師,專注 基礎設施核心系統研發,在系統可擴充套件性、可靠性及成本最佳化方面具備豐富實戰經驗。 目前聚焦 FAANG SDE 面試輔導,一年內助力 30+ 位候選人成功斬獲 L5 / L6 Offer。
END
 0