Cisco OA 真題詳解(2025-2026 最新) | 高頻 5 道 Coding + 完整備戰指南

1,457Views

最近剛剛帶學員刷完 Cisco Software Engineer SDE 的 Online Assessment,順利透過 OA 進入下一輪。Cisco OA 是很多同學的攔路虎,尤其是 Coding 題的邊界處理和 MCQ 的計算機網路部分,容易失分。為了幫助大家高效備戰,我結合 2024-2026 年 LeetCode Discuss、1Point3Acres、Blind、PrepInsta 等平臺以及我們學員的真實反饋,整理出了近兩年最高頻的 5 道 Coding 真題,並附上完整 Python 程式碼模板和解題思路。

Cisco OA 真題詳解(2025-2026 最新) | 高頻 5 道 Coding + 完整備戰指南

Cisco OA 整體情況

  • 平臺:HackerRank(主流)
  • 題量:2-3 道 Coding + 大量 MCQ
  • 時長:60-90 分鐘
  • 透過關鍵:Coding 至少 2 道接近全 AC,MCQ(尤其是計算機網路)正確率要高

Cisco OA 的 Coding 題以 Medium 為主,重點考察邊界處理、程式碼清晰度和時間複雜度。下面是近兩年出現頻率最高的 5 道真題。

Cisco OA 高頻真題詳解 & 程式碼模板

1. Coin Game / Minimum Starting Amount

題目:給定一個整數陣列 nums(正負值代表硬幣),求初始最少需要多少資金,才能保證任意字首和都不為負數。

def minStartAmount(nums):
    min_balance = 0
    current = 0
    for num in nums:
        current += num
        min_balance = min(min_balance, current)
    return max(0, -min_balance)


# 測試
print(minStartAmount([1, -2, 3, -4, 5]))  # Output: 2

思路:維護字首和的最小值,答案為 max(0, -min_prefix)。

2. Device Name System / Unique Folder Names

題目:依序為資料夾產生唯一名稱,重複時在後面加 (k)。

def getUniqueFolderNames(names):
    seen = {}
    result = []
    
    for name in names:
        if name not in seen:
            result.append(name)
            seen[name] = 1
        else:
            k = seen[name]
            while f"{name}({k})" in seen:
                k += 1
            new_name = f"{name}({k})"
            result.append(new_name)
            seen[name] = k + 1
            seen[new_name] = 1
    return result


# 測試
print(getUniqueFolderNames(["kaido", "kaido", "kaido", "kaido"]))
# Output: ["kaido", "kaido(1)", "kaido(2)", "kaido(3)"]

3. Coloured Zenga / Minimum Moves to Remove Blocks

題目:消除連續相同顏色 ≥3 個木塊,求最少操作次數(或是否能全部消除)。

def minimumMoves(blocks):
    stack = [] # [(color, count)]
    for color in blocks:
        if stack and stack[-1][0] == color:
            stack[-1][1] += 1
        else:
            stack.append([color, 1])
        
        while stack and stack[-1][1] >= 3:
            stack.pop()
    
    return 0 if not stack else -1 # -1 表示無法全部消除

4. Make It Palindrome

題目:透過最少刪除/替換操作使字串變成回文,傳回最少操作次數。

def makePalindrome(s: str) -> int:
    left, right = 0, len(s) - 1
    operations = 0
    while left < right:
        if s[left] == s[right]:
            left += 1
            right -= 1
        else:
            operations += 1
            left += 1 # 可嘗試左右兩種情況取最小值(進階版)
    return operations


print(makePalindrome("abca")) # Output: 1

5. Apple Grouping / Group Apples

題目:將蘋果分組,每組內最大重量 – 最小重量 ≤ diff,求最少分組數。

def minimumGroups(weight, diff):
    if not weight:
        return 0
    weight.sort()
    n = len(weight)
    groups = 0
    i = 0
    while i < n:
        groups += 1
        j = i
        while j < n and weight[j] - weight[i] <= diff:
            j += 1
        i = j
    return groups


# 測試
print(minimumGroups([1, 5, 3, 8, 2, 10], 3)) # Output: 3

備戰建議

  • 重點方向:Array、String、Two Pointers、Greedy、Stack
  • 時間分配:第一題 20 分鐘解決,留足夠時間給第二題和 Follow-up
  • 代碼要求:命名清晰、邊界處理完整、適當註釋
  • MCQ:電腦網路是重災區,必須專注於複習 TCP/IP、子網路劃分、OSPF 等

Cisco OA 題型相對固定,提前 3-4 週針對性準備,通過率會大幅提升。

寫在最後

這次很高興能幫助這位同學順利通過 Cisco OA。如果你也在準備 Cisco、Amazon、Stripe 或其他大廠的 OA,感覺一個人複習比較吃力,或者想針對性地提升 OA 通過率,歡迎來找我。

我是 Programhelp 的學長,專注於提供 OA 實戰輔助 服務(HackerRank、CodeSignal 等平台),會根據你的實際情況,給你一對一的面試幫助、模擬練習和答案技巧指導。有需要的同學可以直接聯絡 Programhelp 詳談,我會親自與你溝通,制定適合你的 OA 備戰方案。

感謝閱讀,祝大家早日通過 OA,拿到心儀 Offer!

author avatar
Jory Wang Amazon資深軟體開發工程師
Amazon 資深工程師,專注 基礎設施核心系統研發,在系統可擴充套件性、可靠性及成本最佳化方面具備豐富實戰經驗。 目前聚焦 FAANG SDE 面試輔導,一年內助力 30+ 位候選人成功斬獲 L5 / L6 Offer。
END
 0