最近不少人在討論 HRT OA ,我這邊也剛帶學員走完一場。整體體驗其實比很多人想象中友好一些:四道題限時完成,節奏比較緊湊,但只要平時演算法基礎比較紮實、對常見題型比較熟,基本都能在時間內順利做完。這場 OA 一共四題,學生 70 分鐘全部一次 AC,沒有出現反覆除錯或者卡思路的情況。

1.骰子計分
題目描述
擲 3 個 6 面骰子,結果用整數 a、b、c 表示,然後根據以下規則計算總分:
- 三個骰子點數完全相同(
a = b = c):得分 =1000 * a - 恰好兩個骰子點數相同:得分 =
500 * x(x是那兩個相同點數的值) - 三個骰子點數都不同:得分 =
100 * min(a, b, c)
解題思路
先判斷三個骰子點數是否全相同,是就返回1000乘該點數;不是就看是否有兩個點數相同,有就返回500乘重複點數。若前兩種都不滿足,返回100乘三個點數里的最小值。
2.子音替換密碼
題目描述
你要實現一個簡單替換密碼,只對備忘錄(memo)裡的子音字元生效:
- 隻影響子音:
b,c,d,f,g,h,j,k,l,m,n,p,q,r,s,t,v,w,x,y,z(大小寫都算),母音和其他字元保持不變。 - 規則:把第 k 個出現的子音向後移動到下一個子音;如果是
z就迴圈到b。 - 大小寫必須保留(大寫仍為大寫,小寫仍為小寫)。
- 時間複雜度不超過
O(len(memo)²)即可。
例子:
memo = "CodeSignal", k = 3 → 輸出 "CodeTignam"
解釋:
- 原子音:
C, d, S, g, n, l - 第 3 個子音
S向後移一位變成T,其餘不變。
解題思路
先確定子音範圍(排除母音a/e/i/o/u的大小寫),再初始化子音計數器 2. 遍歷字串,遇到子音就計數,數到k時替換成下一個子音(z->b、Z->B),計數清零;非子音直接保留,最後拼接結果。
3.迷宮與傳送門
題目描述
你要探索一個矩形矩陣形狀的迷宮,裡面包含障礙物和傳送門。你從左上角 (0, 0) 出發,目標是到達右下角 (n-1, m-1),且只能一直向右移動。
解題思路
用一個字典記錄傳送點,一個集合記錄走過的位置。從起點開始一步步走,如果踩到障礙物直接返回-1;如果走到之前到過的位置,說明進入迴圈,返回-2;順利到達終點就輸出步數。注意處理好傳送機制和狀態記錄就行。
4.可嵌入的最大正方形面積
題目大意
給定一個陣列 cityLine,每個元素代表一棟摩天大樓的高度,每棟樓寬度固定為 1,且彼此緊密相鄰。你的任務是找出能嵌入這排大樓的最大正方形的面積。
解題思路
用二分查詢猜最大正方形邊長(範圍0到高樓數量),每次取中間值mid,驗證是否有連續mid棟樓高度>=mid。若驗證透過,嘗試更大邊長;若不透過,嘗試更小邊長,最後最大可行邊長的平方就是答案。
OA卡時間怎麼辦?
如果擔心卡思路、調不出 bug 或時間不夠,現在不少人選擇 OA實時面試輔助 。簡單來說就是考試過程中有遠端語音協助,關鍵時刻給一點思路提示,避免在某一題上耗太久。
我們這邊之前也協助過不少 Hudson River Trading、Optiver、Jane Street、TikTok、Amazon 的 OA / VO。很多時候其實就差一個小提醒,就能把整場節奏拉回來。最近要做 OA 的同學,可以提前瞭解一下這種方式。