刚刚带一位同学做完 TikTok 27 Summer SDE OA ,四道题全部一次 AC,总用时大约 30 分钟。同学代码基础比较扎实,几乎没有改动就直接过了。今天把题目和我们当时的解题思路整理出来,给正在准备的同学参考。

第一题:大小写字母数量差

给定一个只包含大小写英文字母的字符串,计算大写字母数量减去小写字母数量的差值。
思路 直接遍历一遍字符串即可。遇到大写字母就让计数器 +1,遇到小写字母就让计数器 -1,最后返回这个差值。不需要额外的数组或哈希表,时间复杂度 O(n),空间 O(1)。属于送分热身题,写的时候注意别把非字母字符也算进去(虽然题目保证只有大小写字母)。
第二题:元音首尾单词反转中间部分

给定一个字符串数组,每个元素是一个单词。如果某个单词的首尾字符都是元音(a/e/i/o/u,大小写都算)且长度大于 2,就把这个单词中间部分(去掉首尾)反转,其他单词保持不变,返回修改后的数组。
思路 对每个单词先判断长度是否大于 2,并且首尾字符是否都属于元音集合(建议先把元音放进一个 set,方便判断大小写)。如果满足条件,就取出 word[1:-1] 反转后,再和首尾字符拼回去;否则原样保留。注意空字符串和长度 ≤2 的情况直接跳过,避免索引越界。整体实现很直接,一次遍历就能完成。
第三题:泡泡消除 + 重力下落

给定一个二维棋盘,每个格子有颜色泡泡。规则是:如果某个泡泡至少有两个相邻(上下左右)同色邻居,就把这个泡泡和它所有同色邻居一起标记为可消除。所有标记的泡泡同时变成空(0),然后每列单独做重力下落,非空泡泡往下掉,空位补 0。
思路
- 先扫描整个棋盘,找出所有满足“至少两个同色邻居”的泡泡,把它们和相邻同色泡泡一起标记。
- 一次性把所有标记位置设为 0。
- 对每一列单独处理:把非 0 的值收集起来,从底部往上填充,其余位置补 0。
注意边界和“一次标记、一次消除”的顺序,避免边扫描边修改导致漏标。
第四题:根据连续访问照片恢复完整路径

给定一组照片,每张照片记录两个连续访问的 landmark ID(无向)。已知整个旅程是一条链(每个点最多出现两次),帮旅行者重建完整访问顺序(正序或逆序都算对)。
思路 这其实是一条退化成链的无向图。先根据所有照片建邻接表,并统计每个点的度数。因为是一条链,度数为 1 的点就是端点。任选一个度数为 1 的点作为起点,然后从该点开始,每次走到下一个未访问的邻居,直到走完所有点,把路径记录下来即可。图是线性的,不会有分支,遍历过程非常直接,时间复杂度线性。
整体感受
TikTok 这套 OA 风格比较稳定,四题难度递进但不算特别刁钻。第一题送分,第二题字符串处理,第三题模拟 + 重力,第四题图论基础。同学之前做过不少类似题,所以节奏很快,基本每题 5-8 分钟就搞定了。
如果你也收到了 TikTok 的 OA 邮件,感觉时间紧或者某道题没把握,可以提前找我们 mock 一下。北美各大小厂 27 Summer 的 OA 我们都比较熟悉,很多同学都是一次过直接进面。
这次学员在我们提前过了类似模拟和字符串题型后,正式考试几乎没有卡点。TikTok OA 整体还是比较看重实现清晰度和边界处理的。
Interview Show 专注北美技术岗位的面试辅助,团队来自一线大厂,提供 OA 辅助、VO mock 和一对一指导。无论你是在准备 TikTok、Meta、Amazon 还是其他公司,我们都能根据你的情况给出针对性方案。
有需要的同学可以直接联系我们做免费评估。祝大家早日通过 OA,顺利进面!