TikTok 2026 OA 全解析:Codesignal 真题、Python AC 解法

106Times read
No Comments

作为专注于求职助攻的专业团队,programhelp 近期跟踪了多场 TikTok 校招及社招 OA 笔试,发现其考试形式已发生重大调整:平台从原有的 HackerRank 全面迁移至 Codesignal,题型也从「5 选择 + 2 编程」改为「70 分钟 4 道纯编程题」。目前一亩三分地等平台鲜有最新原题分享,我们结合近期实战经验,整理了完整的真题解析、AC 解法及针对性辅导方案,助力求职者高效通关。

核心考试信息梳理

  1. 考试平台:仅 Codesignal 网页端,支持本地 IDE 编写后粘贴提交,提供代码高亮与运行调试功能;
  2. 题型规则:4 道纯编程题,无选择题,70 分钟作答时间,时间充裕,中等速度完成后仍有充足查错时间;
  3. 题库来源:不使用 TikTok 自研题库,均抽取 Codesignal 平台原生题目,无重复旧题,侧重考察硬实力;
  4. 通过标准:题目难度整体为中等,无高难度 Hard 题,4 道题全部 AC(100% 通过率)是获取面试邀约的关键,仅通过 2-3 道则通过率大幅下降;
  5. 考点分布:集中于数组字符串处理、模拟逻辑、哈希表应用,无复杂 DP 或图论题目,属于通过系统训练即可攻克的类型。

真题一:数字碎片拼接统计(高频必考)

题目描述

给定正整数数组 fragments(数字碎片)和目标数字 accessCode,统计满足条件的有序下标对 (i, j)(i≠j)的数量,要求 str (fragments [i]) + str (fragments [j]) == str (accessCode)。

解题思路

本题最优解法为字符串处理结合哈希表,时间复杂度 O (n),避免暴力枚举导致超时:

  1. 类型转换:将 accessCode 转为字符串 s,数组中所有数字碎片均转为字符串形式;
  2. 频次统计:利用 Counter 统计所有字符串碎片的出现次数,便于快速查询;
  3. 前缀匹配:遍历每个字符串片段 a,判断 s 是否以 a 为前缀,若满足则计算后缀 b = s [len (a):];
  4. 组合数计算:若 b 存在于统计结果中,分两种情况计算:a≠b 时,组合数为 a 的频次 ×b 的频次;a==b 时,需满足 i≠j,组合数为 a 的频次 ×(a 的频次 – 1);
  5. 结果累加:汇总所有符合条件的组合数,即为最终答案。

AC 满分代码(Python,Codesignal 直接提交)

python

运行

from collections import Counter

def solution(fragments, accessCode):
    s = str(accessCode)
    str_frags = [str(num) for num in fragments]
    cnt = Counter(str_frags)
    res = 0
    for a in cnt:
        if s.startswith(a):
            b = s[len(a):]
            if b in cnt:
                if a != b:
                    res += cnt[a] * cnt[b]
                else:
                    res += cnt[a] * (cnt[a] - 1)
    return res

易错点提醒

  1. 注意有序对要求,解法天然覆盖 i 和 j 的顺序差异,无需额外处理;
  2. 必须通过字符串拼接判断,不可直接进行数字运算,避免位数进位导致错误;
  3. 重点关注 a==b 的场景,遗漏 “频次 – 1” 会导致答案偏小。

真题二:报纸排版(文本对齐 + 边框模拟)

题目描述

给定单词数组、页面宽度 width、对齐方式 alignment(left/right),按以下规则完成排版并返回完整页面:

  1. 排版规则:按顺序装载单词,单词间至少保留 1 个空格,若加入下一个单词会超宽则换行;
  2. 对齐规则:每行内容补齐空格至 width 长度,左对齐补尾部,右对齐补开头;
  3. 边框规则:每行首尾加竖线 |,页面最上方和最下方加宽度为 width+2 的横线 -。补充约束:单个单词长度不超过 width,无排版困难。

解题思路

本题为纯模拟题,核心在于逻辑拆解与细节处理,步骤如下:

  1. 分行处理:遍历单词,累计当前行单词长度及所需空格数,判断是否可加入下一个单词,不可则处理当前行并换行;
  2. 对齐补齐:对每行单词拼接后,计算所需补充空格数,按对齐方式完成空格填充;
  3. 边框添加:为每行内容首尾加 |,生成上下横线边框,组合为最终页面。

AC 满分代码(Python,Codesignal 直接提交)

python

运行

def solution(words, width, alignment):
    lines = []
    current_line = []
    for word in words:
        current_len = sum(len(w) for w in current_line) + len(current_line) - 1 + len(word) if current_line else len(word)
        if current_len <= width:
            current_line.append(word)
        else:
            lines.append(' '.join(current_line))
            current_line = [word]
    if current_line:
        lines.append(' '.join(current_line))
    
    border_lines = []
    for line in lines:
        space_need = width - len(line)
        if alignment == 'left':
            aligned = line + ' ' * space_need
        else:
            aligned = ' ' * space_need + line
        border_lines.append(f'|{aligned}|')
    
    top_bottom_border = '-' * (width + 2)
    final = [top_bottom_border] + border_lines + [top_bottom_border]
    return '\n'.join(final)

易错点提醒

  1. 分行计算时需包含单词间的空格,否则会导致换行判断错误;
  2. 空格补充需精确到 width 长度,避免边框错位;
  3. 遍历结束后需处理最后一行未存入的单词。

高频补充真题

第一题:找所有 t[i] > t[i – 1] && t[i] > t[i + 1] 的数,然后返回这个数组就行了,按题意模拟一遍

第二题:维护每个位置放了多少种不同的物品,返回物品数量最多的位置,需要用 map 套 set 来维护位置并且给物品去重,最后遍历我们的 map 还有 set 的 size 大小就行了,记录最大值

第三题:我们以每个 1 为起始点,按题目意思模拟,向左上右上左下右下拓展就行了,对应的每次 x y 坐标的增量向量就是 (1, 1) (1, -1) (-1, -1), (-1, 1) 这四种,跑一遍就行了,注意只有走到边界才计入答案当中

第四题:维护每个点被多少个 2 * 2 的矩阵覆盖,如果建一个 n * m 的矩阵然后模拟肯定不行,因为 n m 大小的规模都是 1e5 的,但是由于每个点最多被覆盖 4 次,并且 2 *2 矩阵的数量是有限的,我们直接用 map 来维护,维护每个点的状态,这里的话懒得再写个 pair 插到 map 里了,就直接写个状压得了,由于 (x, y) 都是不超过 int 范围的,所以我们可以用 x << 32 再或上 y 来得到这个点的状态,然后在 map 里对应点的计数++就好了,最后 0 的数量用总的算算就行

高效通关 TikTok OA?Programhelp 帮你一把!

面对 TikTok 校招/社招 OA,单靠刷题往往效率低、容易遗漏细节。Programhelp 提供 远程无痕 OA 代写与在线辅导服务,覆盖 HackerRank、牛客网、Codesignal 等主流平台。

  • OA 代写:保证所有测试用例 100% 通过,不通过不收费;
  • AC 解法辅导:Python、Java、C++ 等语言均可,精准讲解每题核心逻辑与易错点;
  • 远程无痕操作:完全安全,不影响账号使用;
  • 个性化训练:针对你的弱项定制刷题计划,快速提升通关效率。

不再孤军奋战,Programhelp 让你高效通关 TikTok OA,轻松迈向面试 Offer。

author avatar
Jory Wang Amazon资深软件开发工程师
Amazon 资深工程师,专注 基础设施核心系统研发,在系统可扩展性、可靠性及成本优化方面具备丰富实战经验。 目前聚焦 FAANG SDE 面试辅导,一年内助力 30+ 位候选人成功斩获 L5 / L6 Offer。
End of text
 0