这套 SIG OA 是我最近跟学员一起做的,整体节奏偏快——70min 4道纯算法题,平台是 Codesignal,所以和 TikTok / Visa / Capital One / Robinhood 那套 70min OA 本质一样:都是 Codesignal 题库,靠题库出,不靠公司定制。
简单科普一句:
- 70min = 4 道 Leetcode 风格算法题(可编可不编 OOD)
- 90min = 4 道 OOD 题(类设计、接口实现)
两套本质题库不同,但都属于 Codesignal 的商业题库,不是 SIG 专属。

SIG OA 真题回顾
Problem 1: Case Toggling Feature
Description Imagine you are developing a messaging application, and you want to include a feature that allows users to playfully toggle the case of text, making it more fun and engaging. Given a string inputText that includes uppercase and lowercase English letters, spaces, digits, and punctuation marks, your task is to write a function that toggles the case of each alphabetic character in the string (converting uppercase to lowercase, and vice versa), while leaving all other characters the same.
Return the processed string with the case of each alphabetic character toggled.
Example
- For
inputText = "Python 3.9 is SUPER cool!", the output should besolution(inputText) = "pYTHON 3.9 IS super COOL!".
Input/Output
- [execution time limit] 3 seconds
- [input] string
inputText - [output] string
Problem 2: Consonant Substitution Cipher
Description You’re implementing a simple substitution cipher that only affects consonant characters in a memo. This cipher works by shifting every k-th consonant to the following consonant in the alphabet, while leaving vowels and other characters unchanged.
Notes:
- Only consonant characters are affected:
b, c, d, f, g, h, j, k, l, m, n, p, q, r, s, t, v, w, x, y, z. - When shifting from
z, it wraps around tob. - The case of each character must be preserved (uppercase stays uppercase, lowercase stays lowercase).
Example
- For
memo = "Hello World"andk = 2, the output should besolution(memo, k) = "Hemlo XorMd".Explanation: The consonants in the memo are: ‘H’, ‘l’, ‘l’, ‘W’, ‘r’, ‘l’, ‘d’.- 1st consonant ‘H’: Unchanged.
- 2nd consonant ‘l’: Shifts to ‘m’.
- 3rd consonant ‘l’: Unchanged (counter resets).
- 4th consonant ‘W’: Shifts to ‘X’.
- 5th consonant ‘r’: Unchanged.
- 6th consonant ‘l’: Shifts to ‘m’.
- 7th consonant ‘d’: Unchanged.
Input/Output
- [execution time limit] 3 seconds
- [input] string
memo - [input] integer
k - [output] string
Problem 3: Matrix Restoration
Description The given matrix mat contains only one 4 x 4 square. Your task is to find the missing value denoted by ? in it and replace the ? with the correct value. It is guaranteed that the 4 x 4 square contains unique values from the range [1..16].
Example
- For:
mat = [
["1", "2", "3", "4"],
["5", "6", "?", "8"],
["9", "10", "11", "12"],
["13", "14", "15", "16"]
]
The output should be:
solution(mat) = [
["1", "2", "3", "4"],
["5", "6", "7", "8"],
["9", "10", "11", "12"],
["13", "14", "15", "16"]
]
- Explanation: The missing number in the sequence 1 through 16 is 7.
Input/Output
- [execution time limit] 3 seconds
- [input] array.array.string
mat - [output] array.array.string
Problem 4: Molecular Bond Stability
Description You are a chemist working in a laboratory that studies molecular compounds. You have two arrays representing the atomic weights of elements in two different compounds: x represents the primary elements and y represents the secondary elements.
Your research has shown that when two compounds have the same “balance factor” (calculated as the difference between primary and secondary atomic weights), they can potentially form stable molecular bonds.
Your task is to analyze these compound arrays and determine how many unique molecular pairings could potentially form stable bonds. A stable bond occurs when the balance factor of one compound position matches the balance factor of another position.
Count the total number of valid molecular pairings (i, j) where i <= j and the balance factors are equal: x[i] - y[j] = x[j] - y[i].
Example
- For
x = [5, 2, 8, 4]andy = [5, 8, 4, 6], the output should besolution(x, y) = 7.Explanation: The conditionx[i] - y[j] = x[j] - y[i]can be rewritten asx[i] + y[i] = x[j] + y[j]. Let’s calculate the sum for each index:- Index 0: 5 + 5 = 10
- Index 1: 2 + 8 = 10
- Index 2: 8 + 4 = 12
- Index 3: 4 + 6 = 10
Valid pairs (i, j) where sums are equal and i <= j:
- Sum 10: (0,0), (0,1), (0,3), (1,1), (1,3), (3,3) -> 6 pairs.
- Sum 12: (2,2) -> 1 pair.
- Total = 7.
Input/Output
- [execution time limit] 3 seconds
- [input] array.integer
x - [input] array.integer
y - [output] integer
总体体验 & Codesignal 科普
SIG 的 OA 其实非常“题库感”——
没有奇怪模拟、没有公司特色难点,就是纯 Codesignal 算法题。
题量 4 题 / 70 分钟,属于必须熟悉题型才能稳过的那种,逻辑不难但时间卡得紧。
另外再强调一次:
Codesignal 平台所有公司(TikTok / Capital One / Visa / SIG / Robinhood …)在 70min 套题里,都是同一套算法题库。
所以准备方法也是共享的:
- 高频字符串处理
- 计数类 map
- 简单数据结构
- 模拟题
- 一些基础组合 / 数学题
整体并不偏难,但容易在实现细节上翻车。
如果你最近也在准备 Codesignal 套题(TikTok / SIG / Visa / Capital One…)
想要:
- 稳过
- 不翻车
- 不被 timer 逼崩
- 不被边界细节坑
- 或想提前刷“同款题库”
可以随时找我聊。
我们熟得不能再熟,70min 套题已经带过太多次了,你完全不用自己冒险压秒。
我们怎么助攻?
✔ 使用 ToDesk 无痕联机,全程安全稳定
✔ 你在前端专心写,我在语音里提醒关键细节
✔ 卡点会立刻提示方向,防止走错路
✔ 遇到坑点(边界、大小写、计数方式)提前预警
✔ Timer 压力大时帮你稳节奏
✔ Codesignal / HackerRank / Codility 各类题库都非常熟悉
✔ 目标就是:一次写过、零调试、稳稳交卷
能稳,就不要赌。
这就是 Programhelp 一直坚持的理念。