← 返回博客列表
Bloomberg

【乾貨】Bloomberg 不考 LeetCode Hard?這兩道「中等題」為何掛掉了 80% 的候選人?

2025-12-10

很多同學在準備 Bloomberg 或 FinTech(金融科技)類公司面試時,往往會陷入一個誤區:拼命刷 DP(動態規劃)和 Graph(圖論)難題。

但在 oavoservice 協助候選人復盤的過程中,我們發現 Bloomberg 的技術面有一種「詭異」的風格:題目看似不難,但對「程式碼潔癖」和「工程邏輯」的要求高得離譜。

今天我們就拆解兩道 Bloomberg 面試中的「試金石」題目。它們不考演算法的奇巧淫技,考的是你是否具備生產環境的 Coding 意識。

題目一:括號匹配的「語義陷阱」(Redundant Parentheses)

題目描述

一般公司只考「括號是否匹配」(LeetCode Easy 級別),但 Bloomberg 會追問:「是否存在冗餘括號?」

場景示例

常見掛點

很多人只用 Stack 机械通過了 Valid Parentheses 的測試,卻忽略題目隱含的語義判斷。一旦被問到「如何定義冗餘」,就會答不清楚。

oavoservice 滿分思路

這題核心不在「用堆疊」,而在 「表達式是否有意義」

工程視角:括號存在的唯一意義是改變運算優先級或包裹有效表達式。

做法:使用 Stack。當遇到右括號 ),開始 Pop 直到遇到左括號 (

關鍵判斷:如果 Pop 的過程中沒有遇到任何運算子(operator),代表括號內是空的或只是包住單一變數——這就是冗餘括號。

面試官潛台詞:我招的是能寫 Clean Code 的人,不是只會複製模板的人。

題目二:多源匯率聚合(Real-time Exchange Rate Aggregation)

題目描述

這是非常經典的 FinTech 場景縮影:多個銀行(Banks)不斷上報貨幣對(Currency Pair)的匯率。

要求:實作一個類別,支援 addRate,並能隨時透過 getAverage(currencyPair) 回傳該貨幣對在所有銀行中的平均匯率。

常見掛點

不少人直接寫 Map<Pair, List<Rate>>,每次查詢都遍歷 List 求平均。

結果:addO(1),但 getAverageO(N)

在金融讀多寫少(或高頻讀取)的場景下,讀性能太慢,直接不合格。

oavoservice 滿分思路

這題考的是「空間換時間」以及資料一致性。

建議維護三個 Map(或等價的巢狀結構):

addRate 時:

面試官潛台詞:能想到「增量更新」與「覆蓋語義」,代表你理解真實交易系統,而不是死背演算法。

總結:如何搞定「工程感」面試?

Bloomberg 不要求你手寫紅黑樹,但要求你:

如果你覺得「會做題但不會講、工程感不夠」是阻礙,oavoservice 也能提供面試準備與即時輔助。

立即聯絡我們