Google OA 面经 | 独家真题分享还原 + 解题思路 + 提分经验

1,073閱讀
沒有評論

前段时间收到了 Google 的 OA 邀请,时间限制是 90 分钟,三道题。说实话,OA 不算是难到天花板的那种,但题目覆盖面挺广,既要考虑算法,也要注意实现细节。如果你没有提前做过类似题型,时间压力会很大。

这篇文章来还原比较真实的体验,也分享一些我个人的解题策略和遇到的坑点。

Google OA

OA 概览

  • 公司:Google
  • 时长:90 分钟
  • 题量:3 道 Coding 题
  • 难度感受:中等偏上,数据结构与字符串处理题为主
  • 平台:HackerRank
  • 编程语言:Python(支持多语言)
  • 加分点:写出干净、可读性高的代码,别忘了边界测试

Coding 真题

1. Word Pattern Matcher

Given a pattern string consisting of lowercase letters and a sentence of words, determine if the sentence follows the same pattern. Each letter in the pattern corresponds to a unique word, and each word maps to exactly one letter.

Example:

Input: pattern = "abba", s = "dog cat cat dog"
Output: True

Input: pattern = "abba", s = "dog cat cat fish"
Output: False

Constraints:

  • 1 <= pattern.length <= 300
  • 1 <= s.length <= 3000

2. Top K Frequent Listings

Given an array of Google Search query IDs, return the top k most frequent IDs. If two IDs have the same frequency, return the smaller ID first.

Example:

Input: ids = [1,1,2,2,2,3], k = 2
Output: [2, 1]

Constraints:

  • 1 <= ids.length <= 10^5
  • 1 <= id <= 10^9

3. Merge Booking Intervals

Given a list of meeting time intervals where intervals[i] = [start, end], merge all overlapping intervals and return the result in sorted order.

Example:

Input: [[1,3],[2,6],[8,10],[15,18]]
Output: [[1,6],[8,10],[15,18]]

Constraints:

  • 1 <= intervals.length <= 10^4
  • 0 <= start < end <= 10^9

我的解题策略

  • 先做最稳的题:我先做了第一题,因为哈希映射模式匹配是常见套路,很快能写出来。
  • 第二题用库函数节省时间:Python 的 collections.Counter + heapq 很快搞定,时间复杂度也稳在 O(n log k)。
  • 第三题排序合并:先按 start 排序,再线性扫描合并,注意边界条件。

常见坑点

  1. 忘记处理空输入(尤其是字符串分割时)。
  2. 第二题的 tie-break(相同频率时按 ID 升序)容易漏掉。
  3. 合并区间题,intervals 没有先排序会出错。
  4. HackerRank 的 Python 默认是 Python3,注意 input().split() 读取。

FAQ

Q: 如果中途卡住怎么办?
A: 先跳到下一题,不要硬耗时间,留最后 5 分钟再回来尝试补。

Q: 需要写很复杂的优化吗?
A: Google OA 更看重正确性和可读性,除非题目明确要求,否则 O(n log n) 的解法已经足够。

Q: 边界条件重要吗?
A: 非常重要,我最后检查时发现第二题在 k > distinct_ids 时没 return 全部 ID,幸好及时修正。

从容应战,赢下下一场 OA

这次 Google OA,我不仅提前 10 分钟完成了全部题目,还用剩余时间做了更多测试,确保边界情况都覆盖到。Programhelp 的协助,不是简单代写,而是帮你用最快的方式锁定高分,让你在考试中保持自信和稳定节奏。与其独自硬撑,不如让经验丰富的伙伴在背后为你保驾护航。

author avatar
jor jor
正文完
 0
评论(沒有評論)