這套 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 morefun 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 ofeach 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 twodifferent 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 primaryand 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 occurswhen 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 一直堅持的理念。