← 返回部落格列表 IBM 軟體工程師 OA 真題:HackerRank 三類高頻題
IBM

IBM 軟體工程師 OA 真題:HackerRank 三類高頻題

2026-06-14

IBM 的 US General Software 崗位走 HackerRank 線上測評,題目工程味濃、難度中等,更看程式碼正確性和邊界處理,而不是炫技。這篇按 oavoservice 學員的 IBM OA 面經整理,把流程和三類高頻編碼題講清楚,給求職刷題、準備 IBM 線上測評一份實戰參考。


一、IBM OA 流程

階段 形式 時長 重點
線上測評 OA HackerRank 60–90 min 2–3 道編碼題,部分含選擇題
技術面試 編碼 + 專案 45–60 min 中等演算法 + 履歷深挖
經理 / 行為輪 行為題 30–45 min 團隊協作、動機

IBM OA 難度中等,重點考通過測試用例的正確性。題目常是字串、矩陣、圖這類基礎但需要細心處理邊界的題型。

二、高頻題一:字串規整(計數 + 重建)

題目

給一個字串,統計每個字元出現次數,按出現次數降序、次數相同按字典序,重排輸出。

思路

雜湊計數後排序。Python 裡用 Countersorted 的複合 key 一步到位。

from collections import Counter

def reorder_by_frequency(s):
    counts = Counter(s)
    # 先按次數降序,次數相同按字元升序
    chars = sorted(counts, key=lambda c: (-counts[c], c))
    return "".join(c * counts[c] for c in chars)

時間複雜度:O(n + k log k),k 為不同字元數。空間複雜度:O(k)。考點是複合排序 key 和穩定輸出。

三、高頻題二:矩陣區域遍歷(DFS / 計數)

題目

給一個 0/1 矩陣,1 表示陸地,求由相鄰 1(上下左右)組成的最大連通區域面積(經典「島嶼最大面積」變體)。

思路

對每個未訪問的 1DFS 染色,統計該連通塊大小,取最大值。

def max_area(grid):
    if not grid:
        return 0
    m, n = len(grid), len(grid[0])

    def dfs(r, c):
        if r < 0 or r >= m or c < 0 or c >= n or grid[r][c] != 1:
            return 0
        grid[r][c] = 0                      # 標記已訪問
        return 1 + dfs(r+1, c) + dfs(r-1, c) + dfs(r, c+1) + dfs(r, c-1)

    best = 0
    for i in range(m):
        for j in range(n):
            if grid[i][j] == 1:
                best = max(best, dfs(i, j))
    return best

時間複雜度:O(m·n),每格只訪問一次。空間複雜度:O(m·n) 遞迴堆疊最壞情況。注意越界和已訪問標記,避免重複計數。

四、高頻題三:帳戶 / 網路合併(並查集)

題目

給若干 (a, b) 表示 a 和 b 直接連通,求最終有多少個連通分量。IBM 這題常包裝成「伺服器叢集」「帳戶合併」場景。

思路

並查集(Union-Find)帶路徑壓縮,合併所有邊後統計不同根的數量。

def count_components(n, edges):
    parent = list(range(n))

    def find(x):
        while parent[x] != x:
            parent[x] = parent[parent[x]]   # 路徑壓縮
            x = parent[x]
        return x

    for a, b in edges:
        ra, rb = find(a), find(b)
        if ra != rb:
            parent[ra] = rb
    return len({find(i) for i in range(n)})

時間複雜度:近似 O((n + e)·α(n)),α 為反阿克曼函數,實際接近線性。空間複雜度:O(n)。考點是並查集模板和連通分量計數。

五、備考建議


FAQ

Q1:IBM OA 用什麼平台、幾道題?

HackerRank,60–90 分鐘 2–3 道編碼題,部分含選擇題。難度中等,重點考程式碼正確性和邊界處理,常見字串、矩陣、圖論題型。

Q2:IBM OA 難嗎?

整體中等,不太考很難的演算法,但很看細節——邊界、空輸入、測試用例覆蓋。把字串 / 矩陣 / 並查集模板寫熟,通過率會很高。

Q3:IBM 面試看重什麼?

OA 之後是技術面 + 行為輪。技術面中等演算法加履歷深挖,行為輪看團隊協作和動機。整體節奏比頂級大廠溫和。

Q4:怎麼高效準備 IBM OA?

按字串 / 矩陣 DFS / 並查集分塊限時練,重點打磨邊界覆蓋。如需限時 mock 與現場講思路陪練,可聯繫 oavoservice 定製 IBM 專項。


正在準備 IBM OA?

IBM US General Software 走 HackerRank OA,重正確性和邊界。oavoservice 提供 IBM 全流程陪練:HackerRank 高頻題限時模擬,字串 / 矩陣 / 並查集模板專項,邊界與測試用例覆蓋打磨,技術面與行為輪準備。教練含大廠背景資深工程師,幫你把程式碼和表達同時練穩。

立即添加微信 Coding0201獲取 IBM 真題與陪練

聯繫方式