WeRide OA 給我留下了挺深的印象。90 分鐘 3 道題,時間卡得非常緊,後來在 Programhelp 的幫助下,才在正式 OA 中比較從容地完成了前兩題全 AC,第三題也拿到了大部分分數,最終順利透過。下面是我這次 WeRide OA 面經 的完整分享,包括真實遇到的題目型別、解題思路和備戰心得,希望能給正在準備 WeRide 2026 的同學一些參考和幫助。

WeRide OA 整體情況
- 平臺:HackerRank
- 時長:通常 90 分鐘
- 題量:3 道 Coding 題(難度 Medium 為主,第三題偏難)
- 透過關鍵:至少 2 題 Full AC(所有測試用例透過),第 3 題儘量多拿分
- 特點:題目偏工程實用,考察字串處理、陣列操作、DP 和貪心較多,時間緊迫,對程式碼效率和邊緣 case 處理要求較高
WeRide OA 整體難度中等偏難,尤其是時間壓力大,很多同學反映第三題容易超時或邊界處理出錯。
題目一:冪數統計
題目描述
定義冪數為可表示為兩個冪之和的整數,形式為: x = a^p + b^q 其中:
- a, b, p, q 均為整數;
- a, b ≥ 0;
- p, q > 1。
請計算區間 [l, r] 內(包含 l 和 r)的冪數個數。
示例 l = 20,r = 25 時,冪數為:
- 20 = 2² + 4²
- 24 = 2³ + 4²
- 25 = 3² + 4² 共 3 個冪數。
函數說明
int countPowerNumbers(int l, int r)
傳回值:區間 [l, r] 內冪數的數量。
約束條件
- 0 ≤ l ≤ r ≤ 5×10⁶
自定義測試輸入格式 第一行:l 第二行:r
樣例輸入 0
0
1
樣例輸出 0
2
解釋:0 和 1 均為冪數(0=0²+0²,1=0²+1²)。
解題思路
預先生成所有可能的完美冪(perfect power):指數從 2 到 ~40,基數 a 從 0 開始,直到 a^p 超過 r,存入集合去重。 然後雙重迴圈列舉任意兩個冪的和(包括相同冪),將所有和值放入另一個集合去重。最後統計該集合中落在 [l, r] 內的元素個數即可。 (生成法遠優於逐數驗證,適合 r≤5e6。)
題目二:字母差
題目描述
給定兩個字串陣列 a 和 b,對於每一對 a[i] 和 b[i]:
- 如果長度不同,返回 -1;
- 如果長度相同,計算使兩個字串成為變位詞(Anagram)所需修改的最少字元數。
示例 a = [“tea”, “tea”, “act”] b = [“ate”, “toe”, “acts”] 結果:[0, 1, -1]
函數說明
int[] getMinimumDifference(String[] a, String[] b)
傳回值:長度為 n 的整數陣列,對應每對字串的修改次數(或 -1)。
約束條件
- 字串僅包含小寫字母 ‘a’~’z’;
- 1 ≤ n ≤ 100;
- 0 ≤ |a[i]|, |b[i]| ≤ 10⁴;
- 1 ≤ |a[i]| + |b[i]| ≤ 10⁴。
自定義測試輸入格式
- 第一行:整數 n(陣列長度)
- 接下來 n 行:陣列 a 的每個字串
- 接下來一行:整數 n(陣列 B 長度)
- 接下來 n 行:陣列 b 的每個字串
樣例輸入
5
a
jk
abb
mn
abc
5
bb
kj
bbc
op
def
樣例輸出
text
-1
0
1
2
3
解題思路
對每一對字串 a[i] 和 b[i]: 若長度不同,直接返回 -1; 若長度相同,統計兩個字串的 26 個字母頻率,對每個字母取頻率差的絕對值求和後除以 2,即為最少修改字元數。 (n≤100,字串總長小,時間充裕。)
題目三:三元組
題目描述
給定整數陣列 d 和整數閾值 t,統計滿足以下兩個條件的索引三元組 (a, b, c) 的數量:
- a < b < c(索引嚴格遞增);
- d[a] < d[b] < d[c](值嚴格遞增);
- d[a] + d[b] + d[c] ≤ t。
示例 d = [1,2,3,4,5], t = 8 滿足條件的三元組共 4 組:(1,2,3)、(1,2,4)、(1,2,5)、(1,3,4)
函數說明
long triplets(int t, int[] d)
傳回值:滿足條件的三元組總數(long 型別)。
約束條件
- 1 ≤ n ≤ 10⁴;
- 0 ≤ d[i] < 10⁹;
- 0 < t < 3×10⁹。
自定義測試輸入格式
- 第一行:閾值 t
- 第二行:整數 n(陣列長度)
- 接下來 n 行:陣列 d 的每個元素
樣例輸入 0
8
5
1
2
3
4
6
樣例輸出 0
3
樣例輸入 1
7
4
3
1
2
4
樣例輸出 1
2
解題思路
先對陣列 d 排序(保證值嚴格遞增)。 然後用三重迴圈或固定 i < j,雙指標/二分在 j 右側找最大 k 滿足 d[i] < d[j] < d[k] 且 d[i]+d[j]+d[k] ≤ t。 整體時間控制在 O(n²) 或 O(n² log n),用 long 返回結果(n=1e4 時數量可能很大)。
寫在最後
WeRide OA 雖然有一定挑戰,但題型可預測性較強,認真準備就能有不錯的結果。如果你在準備 WeRide OA 時遇到具體題目卡住,或者想做針對性的模擬練習和實時思路指導,歡迎來 Programhelp 諮詢。我們可以幫你梳理高頻題、提供一對一實戰助攻,讓你更有把握透過 WeRide 的 OA。
祝所有衝刺 WeRide 2026 的同學早日透過 OA,順利拿到 Offer!