最近备战 TikTok、Google、Amazon 等大厂 OA 的同学注意了!这套 CodeSignal 真题涵盖了 4 种经典题型,从字符串处理到图论模拟,难度层层递进。
我们长期稳定承接各大科技公司如 TikTok、Google、Amazon 等的 OA 笔试代写服务,确保满分通过。如有需求,请随时联系我们。
✅ Question 1: Count Substrings With Vowels(元音子串计数)
题目描述
你正在开发一个聊天应用的自动审核系统,需要检测特定的语言模式。
给定一个字符串 chatMessage,统计长度恰好为 3 且至少包含一个元音字母("a", "e", "i", "o", "u" 或其大写形式)的子串数量。
约束条件: 1 ≤ chatMessage.length ≤ 1000
示例
输入: chatMessage = "CodeSignal"
输出: 8
解释: 长度为3的子串: "Cod", "ode", "deS", "eSi", "Sig", "ign", "gna", "nal"
所有子串都包含至少一个元音 → 8个
输入: chatMessage = "StrEngThen"
输出: 5
解释: 包含元音的子串: "trE", "rEn", "Eng", "The", "hen" → 5个
oavoservice 满分解法
def solution(chatMessage):
vowels = set('aeiouAEIOU')
count = 0
for i in range(len(chatMessage) - 2):
substring = chatMessage[i:i+3]
if any(c in vowels for c in substring):
count += 1
return count
时间复杂度: O(n),一次遍历即可完成
✅ Question 2: Consonant Cipher Shift(辅音密码位移)
题目描述
你正在实现一个简单的替换密码,只影响备忘录中的辅音字符。
该密码的工作原理是:将每第 k 个辅音字母移位到字母表中的下一个辅音,元音和其他字符保持不变。
规则:
- 只有辅音字符受影响:'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z'
- 从 'z' 移位时,循环回到 'b'
- 必须保留每个字符的大小写
示例
输入: memo = "CodeSignal", k = 3
输出: "CodeTignam"
解释:
辅音序列: 'C', 'd', 'S', 'g', 'n', 'l'
第3个辅音 'S' → 'T'
第6个辅音 'l' → 'm'
oavoservice 满分解法
def solution(memo, k):
consonants = 'bcdfghjklmnpqrstvwxyz'
consonant_set = set(consonants + consonants.upper())
def next_consonant(c):
lower = c.lower()
idx = consonants.index(lower)
next_c = consonants[(idx + 1) % len(consonants)]
return next_c.upper() if c.isupper() else next_c
result = list(memo)
consonant_count = 0
for i, c in enumerate(memo):
if c in consonant_set:
consonant_count += 1
if consonant_count % k == 0:
result[i] = next_consonant(c)
return ''.join(result)
关键点: 辅音计数器 + 模运算判断第 k 个
✅ Question 3: Molecular Bond Pairing(分子键配对)
题目描述
你是一名研究分子化合物的化学家,有两个数组表示两种不同化合物中元素的原子量:
x表示主要元素y表示次要元素
具有相同平衡因子(主要和次要原子量之差)的两个化合物可以形成稳定键。
任务: 统计满足 i < j 且 x[i] - y[i] == x[j] - y[j] 的唯一分子配对 (i, j) 的数量。
示例
输入: x = [2, -2, 5, 3], y = [1, 5, -1, 1]
输出: 6
解释:
计算所有 x[i] - y[i]: → 1, -7, 6, 2
统计差值相同的配对数
oavoservice 满分解法
from collections import defaultdict
def solution(x, y):
diff_count = defaultdict(int)
count = 0
for i in range(len(x)):
diff = x[i] - y[i]
count += diff_count[diff]
diff_count[diff] += 1
return count
时间复杂度: O(n),使用 HashMap 一次遍历统计
核心思路: 经典的 Two Sum 变种,用 HashMap 存储差值出现次数
✅ Question 4: Teleport Labyrinth(传送迷宫)
题目描述
想象你正在探索一个神秘的矩形迷宫,其中包含障碍物和传送门。你的目标是从左上角开始,只能向右移动,到达右下角。
输入:
- 整数 n 和 m:迷宫尺寸
- obstacles:不可通过的单元格列表
- teleports:
[start_row, start_col, end_row, end_col]单向传送列表
移动规则:
- 你始终向右移动(从 [row, col] 到 [row, col + 1])
- 如果到达传送门起点,你会立即被传送到终点
- 障碍物完全阻挡移动
- 移出边界或撞到障碍物则停止
输出:
- 返回遍历的单元格数量(包括起点和传送终点)
- 被障碍物阻挡返回 -1
- 陷入无限传送循环返回 -2
- 无法到达目标但不是因为障碍物或循环返回 -3
示例
输入: n = 3, m = 3, obstacles = [[2, 1]], teleports = [[0, 1, 2, 0]]
网格:
[0,0] [0,1]*T [0,2]
[1,0] [1,1] [1,2]
[2,0] [2,1]X [2,2]
你从 [0,0] 开始,移动到 [0,1] → 传送到 [2,0]
无法向右移动到 [2,1] 因为是障碍物
→ 返回 -1
oavoservice 满分解法
def solution(n, m, obstacles, teleports):
obstacle_set = set(tuple(o) for o in obstacles)
teleport_map = {(t[0], t[1]): (t[2], t[3]) for t in teleports}
row, col = 0, 0
visited = set()
cells_traversed = 0
while True:
# 检查传送循环
state = (row, col)
if state in visited:
return -2
visited.add(state)
# 检查障碍物
if (row, col) in obstacle_set:
return -1
cells_traversed += 1
# 检查是否到达终点
if row == n - 1 and col == m - 1:
return cells_traversed
# 检查传送门
if (row, col) in teleport_map:
row, col = teleport_map[(row, col)]
continue
# 向右移动
col += 1
# 检查边界
if col >= m:
return -3
# 检查障碍物
if (row, col) in obstacle_set:
return -1
return -3
核心考点: 状态机模拟 + 循环检测 + 多种终止条件处理
💡 为什么这套题能筛掉大量候选人?
这 4 道题看似独立,实际上考察了 OA 中最核心的几个能力:
- 字符串处理基础 - Q1 考察滑动窗口思维
- 模拟与状态追踪 - Q2 考察计数器和字符映射
- HashMap 优化 - Q3 是经典的 Two Sum 变种
- 图论与状态机 - Q4 考察复杂条件的模拟能力
🚀 oavoservice:你的满分通关保障
我们长期稳定承接各大科技公司如 TikTok、Google、Amazon、Microsoft、Meta 等的 OA 笔试代写服务,确保满分通过。
✅ 全栈覆盖: 熟悉 CodeSignal、HackerRank、Karat 等所有主流 OA 平台
✅ 实时响应: 7x24 小时在线,随时待命
✅ 满分保障: 专业算法团队,100% 通过率
✅ 安全可靠: 多年经验,从未失手
We consistently provide professional online assessment services for major tech companies like TikTok, Google, and Amazon, guaranteeing perfect scores. Feel free to contact us if you're interested.
📩 如有需求,请随时联系我们。
👉 立即添加微信:Coding0201
锁定你的大厂 Offer!