刚做完 KPMG 的在线测评(online assessment),申请的是 software engineer 数字化转型团队的岗位。给在准备的人分享一些笔记。
OA 通过 HackerRank 发来,链接是 recruiter screen 后大概 3 天 recruiter 发的。计时 75 分钟。两道编程题。
题 1:字符串操作。找最长不含重复字符的子串。经典滑动窗口。刷过 leetcode medium 的基本见过这道原题或几乎一样的变体。我大概用了 18 分钟。
题 2:更有意思一点。给一组带时间戳和 user ID 的 API 调用记录,找出在任意滚动 30 分钟窗口内调用次数超过 N 的用户。本质是对时间戳做滑动窗口,但需要想清楚数据结构。我用了一个排好序的 deque。中等偏难,但约束规模不夸张,所以就算没那么最优的解法应该也能过。
可选语言:Java、Python、JavaScript、C#、C++。我用的是 Python。
另外还有 5 道选择题。都是常规 CS 知识:时间复杂度、基础排序、一些 SQL(一题 JOIN、一题 GROUP BY)。感觉就是做筛选,可能按通过/不通过算分。
我总共用了大概 58 分钟。过了,然后进入 phone screen。
难度结论:不是 LeetCode hard。整体大概 LeetCode medium。如果你一直在刷 FAANG loops,会比你想象中舒服。如果这是你第一次 coding interview 体验,就把滑动窗口模式狠狠干透,我这次两场里它出现了两次。
有个我没想到的点:OA 最后还有一个简短的「work style」问卷。大概 10 题,问你偏好的工作方式。我如实填了。不确定是筛选还是纯信息收集。