目录
正在加载目录...

DRW OA 分享 | 2026 Codility 平台两道题完整复盘

7.18 刚做完 DRW OA ,这家 OA 是在 Codility 平台上做的。这个平台的特点是不会显示 hidden case,只给你测试题目自带的样例,所以需要自己多写 edge case 测试代码。我也帮忙测了好多,这场第二题有一定难度,分了 5 个 sub task。整体两道题,时间 1 小时 36 分左右,难度中等偏上。有需要完整代码的同学可以私聊我。

DRW OA 分享 | 2026 Codility 平台两道题完整复盘

第一题:Tournament Last Round

简介:有 N 个玩家(编号 0 到 N-1),每个玩家有不同的 skill level。锦标赛以淘汰赛形式进行,每轮胜者晋级,技能高的获胜。要求对于每个玩家,返回他在锦标赛中参与的最后一轮编号。

DRW OA 分享 | 2026 Codility 平台两道题完整复盘

AC思路: 这题本质是模拟二叉树淘汰赛结构。可以用递归或迭代的方式模拟每轮比赛,记录每个玩家被淘汰的轮次。核心是利用技能值直接决定胜负,无需真实模拟所有比赛,通过二分或树状结构快速计算每个玩家的出局轮次。

代码实现相对直接,注意边界(N=1、N=2)和技能值唯一性。

第二题:Room Cleaning Robot

简介:给定一个房间布局(网格),机器人需要清扫整个地板,支持任意形状的房间和障碍物。从任意起点出发,返回一种可能的清扫路径序列(用方向字符表示)。

DRW OA 分享 | 2026 Codility 平台两道题完整复盘

AC思路: 这题分了多个 sub task,从简单到复杂。核心是 DFS 或 BFS 遍历整个可达区域,记录路径。需要处理障碍物、房间形状不规则、起点任意等情况。重点是保证路径覆盖所有可达格子,且不重复访问。

我用了 DFS 回溯 + 方向优先级的方式,逐步通过了所有 sub task。注意边界检查和路径记录格式。

第三题:String Compression

简介:给定字符串 S 和整数 K,返回删除恰好 K 个连续相同字符后最短的表示长度。

RLE 规则:1 个字符不写数字,多个连续相同字符写”数字+字符”,比如 “AABBB” 压缩成 “2A3B”,长度 4;”AAAAAAAAAAAAAAAAAAA”(20个A)压缩成 “20A”,长度 3。

三个例子

  • “ABBBCCDDCCC” K=3 → 删 “DDC” → “ABBBCCCC” → “A3B4C” 长度 5
  • “AAAAAAAAAABXXAAAAAAAAA” K=3 → 删 “BXX” → “AAAAAAAAAAAAAAAAAAAA”(21个A)→ “21A” 长度 3
  • “ABCDDDEFG” K=2 → 删 “EF” → “ABCDDDDG”不对,应该是删 “EF” 剩 “ABCDDDG” → 压缩 “ABC3DG” 长度 6
DRW OA 分享 | 2026 Codility 平台两道题完整复盘

AC思路: 枚举每个删除起点,删掉 S[i..i+K-1] 后计算剩余字符串的 RLE 长度。

暴力 O(N²) 可能过不了,优化方向是预处理 RLE 分组,前缀和维护左右两侧的完整段长度,O(1) 查询。难点在边界处理:删除段两端的字符如果和邻居相同,会发生合并,合并后的段数和长度要重新算。

另外单独写一个函数算”n 个相同字符的 RLE 贡献长度”——1 个贡献 1、2-9 贡献 2、10-99 贡献 3,合并前后个数变了,这里最容易出错。

备考建议

DRW OA 在 Codility 平台,建议提前适应平台环境,多写测试用例验证逻辑。题型偏工程实现和模拟,提前练好 DFS/BFS、树结构和路径规划类题会很有帮助。DRW 这类量化公司的 OA 题库在 InterviewShow 有收录,量化这条线的题型和备考方案他们都有覆盖,有需要的可以去看看。

END