Microsoft OA 中等難度題解析|Session Token 設計 + 字串操作題思路拆解

最近這波大廠 OA 確實有點密集,尤其是 Microsoft、Google、TikTok、Amazon 都在瘋狂發題。微軟這套我剛做完,整體難度屬於中等偏上,不是那種純模板題,但也沒有特別刁鑽,核心還是考察資料結構理解 + 程式碼實現穩定性。下面把這次的兩道題整理一下,給準備 Microsoft OA 的同學一個參考。

Q1:字串最大操作次數

字符串最大操作次数

題意:每次可以選三個連續字元 s[i], s[i+1], s[i+2],如果前兩個相等,且第三個不同,就把第三個改成和前兩個一樣。問最多能操作多少次。

思路:一旦出現兩個連續相同字元,它們就可以“向右擴散”,把後面不同的字元一個個變成一樣。也就是說,每一段長度 ≥2 的連續相同字元,都可以不斷吞掉右邊不同的字元,直到遇到新的連續塊。所以本質是在統計:有多少字元可以被前面的“連續塊”同化。可以從左往右遍歷,記錄當前連續相同字元的長度,如果長度 ≥2 且後面字元不同,就可以進行一次操作,並把連續長度繼續擴充套件。

Q2:Session 認證系統

Session 认证系统

題意:就是實現一個帶過期時間的 token 系統。每個 token 生成時有一個過期時間 = 當前時間 + TTL。支援三個操作:生成、續期、查詢當前沒過期的數量。關鍵點在於:在同一時間點,必須先判斷哪些 token 已經過期;如果過期時間剛好等於當前時間,也算過期,不能續期也不能計數。

思路:用一個雜湊表存 token_id -> 過期時間。每次操作時,先把所有過期的刪掉(或者在訪問時判斷是否過期)。generate 就直接寫入新的過期時間;renew 只有在 token 存在且沒過期時才更新過期時間;count 就統計當前沒過期的個數。

大廠 OA 衝刺建議

如果你最近在刷 Microsoft、Google、TikTok、Amazon 的 OA,一定要把重心放在“穩定度”上,而不是隻追求做出來。邊界條件必須練熟,過期判斷、下標越界、複雜度控制這些細節不能丟;同時要模擬真實考試節奏,把自己壓在限時環境裡訓練,目標是 30 分鐘內穩定 AC,而不是反覆 debug。現在很多 OA 真正拉開差距的,不是會不會,而是穩不穩。如果你卡在某類題型,或者想拿到更多最新真題整理、做高強度模擬,甚至需要 實戰輔助支援 ,都可以聯絡我們,一對一幫你把節奏和透過率一起拉上來。

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