最近備戰 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!