目录
正在加载目录...

Coinbase OA LeetCode 风格复盘|CodeSignal 四 Level 内存数据库

最近做了一套 Coinbase OA ,平台是 CodeSignal,90 分钟四个 Level。和传统 Coinbase OA LeetCode 刷题不一样,这套更偏逐步加功能的 OOD:当前 Level 全部通过才能解锁下一关,前面写的接口后面会继续用。

先说明一点:CodeSignal 上这种 90 分钟四 Level 题,往往不绑定单一公司。Coinbase OA、Meta、Persona、Zip 等都会出类似背景,题库是共享的。如果你平时只刷 LeetCode 模板,临场容易觉得「题不难但状态很多」。做过完整题库、手里有全对代码,会轻松很多。

Coinbase OA LeetCode 风格复盘|CodeSignal 四 Level 内存数据库

Level 1:Coinbase OA 基础读写(类 LeetCode 哈希)

内存库里每条记录用字符串 key 标识,里面是若干 field → value 对。

需要实现:

  • set(key, field, value):写入或覆盖;记录不存在就新建
  • get(key, field):取值,不存在返回 None
  • delete(key, field):删字段,成功 True,否则 False
Coinbase OA LeetCode 风格复盘|CodeSignal 四 Level 内存数据库

用嵌套字典 dict[key][field] = value 即可。set 时若 key 不存在先建空字典再写字段;get / delete 前都要先判断 key 和 field 是否存在,避免 KeyError。本质很像 LeetCode 里的哈希表模拟,边界处理好就能过。

Level 2:按前缀扫描

新增:

  • scan(key):返回该记录所有字段,格式 “field(value)”,按字段名字典序
  • scan_by_prefix(key, prefix):只返回前缀匹配的字段,同样排序
Coinbase OA LeetCode 风格复盘|CodeSignal 四 Level 内存数据库

在 Level 1 的字典上遍历该 key 下所有 field,按需过滤后再排序。格式拼接成 f”{field}({value})”,排序只看 field 名。记录不存在直接返回空列表。和部分 LeetCode 字符串前缀题思路接近,但这里要保持接口兼容,别改坏 Level 1 的行为。

Level 3:Coinbase OA TTL 与时间戳

操作全部带 timestamp,字段可设 TTL,过期视为不存在。时间只向前,同一测试里不会混用带/不带 timestamp 的旧接口。

核心接口:

  • set_at / set_at_with_ttl
  • get_at / delete_at / scan_at / scan_by_prefix_at
Coinbase OA LeetCode 风格复盘|CodeSignal 四 Level 内存数据库

每个 field 额外记下「写入时间」和「过期时间」(timestamp + ttl)。任何读、扫、删之前,先判断当前 timestamp 是否仍落在有效区间 [写入, 过期) 内;过期就当不存在。没有 TTL 的字段可视为永不过期。旧接口保持原行为,相当于用「无限大时间」去查。这一关开始明显超出普通 LeetCode 题,状态和时效要一起维护。

Level 4:备份与恢复

  • backup(timestamp):保存当前所有未过期记录的状态(含剩余 TTL),返回当时非空记录数
  • restore(timestamp, timestamp_to_restore):用不超过 timestamp_to_restore 的最近一次备份恢复,并按当前时间重算过期点
Coinbase OA LeetCode 风格复盘|CodeSignal 四 Level 内存数据库

备份时建议存:字段值 + 剩余寿命(原过期时间 – 当前 backup 时间)。恢复时用「当前 restore 时间 + 剩余寿命」作为新过期点,这样时间线仍然只向前,不会出现「恢复后立刻过期」的错乱。保证存在不晚于 timestamp_to_restore 的备份,取最近一次即可。

Coinbase OA 和纯 LeetCode 的差别

算法难度不高,难在状态设计:字段何时过期、备份存什么、恢复后 TTL 怎么接。建议一上来就把 field 元数据(value、写入时间、过期时间)设计清楚,后面三个 Level 会顺很多。很多人只练算法模板,遇到这种四 Level OOD 容易在 TTL 和 backup 上翻车。CodeSignal 同类题库其实就几套大背景(内存库、云存储、文件系统),提前练过会稳很多。

最近北美各大厂 OA 都接触得比较多,北美面试真题和全对代码都有收录。准备 Coinbase OA 或同类 CodeSignal 题的同学,有需要可以私聊。

祝大家顺利 AC,拿到心仪 offer。

END