這場 WeRide OA 做下來真的蠻順利的,三個題都在 Hackerrank 平台上完成,題型偏邏輯實現型,時間很充裕,全程基本上沒卡點。做完感覺這套題就是在考察思維清晰度和實現細節,題量適中、難度不高,但還是有一些地方能體現你對 DP 和字符串的敏感度。下面詳細複盤三題。
Q1: Date Mapping and Reformatting
Problem Statement:
Given a date string like "20th Oct 2025", convert it into the format "2025-10-20".
思路:
這題是非常標準的字串處理題。
- 建立一個英文月份到數字的映射表,例如
"Jan" -> "01","Feb" -> "02","Oct" -> "10"。 - 拆分輸入字串,提取
day,month,year。 - 筆記
day中會帶「st」、「nd」、「rd」、「th」 等後綴,要去掉。 - 最後拼接為
"YYYY-MM-DD"的格式傳回。
代碼量不大,但要小心處理輸入格式。
Q2: Minimum Cost to Make Adjacent Numbers Unequal
Problem Statement:
You are given two arrays h[] and c[]. You can increase h[i] by 1 at a cost of c[i].
Find the minimum total cost required so that all adjacent elements in h are not equal.
思路分析:
這題看起來像貪心,但其實是 DP。
關鍵觀察是:每個元素最多加兩次就足以避免與相鄰重複。
- 定義狀態
dp[i][j]表示前i个数中,第i个加了j次後的最小花費(j ∈ {0,1,2})。 - 狀態轉移時,從前一個位置
dp[i-1][k]轉移而來,只要(h[i]+j) != (h[i-1]+k)。 - 轉移公式為:
dp[i][j] = min(dp[i-1][k] + j * c[i]) if h[i]+j != h[i-1]+k
- 最終答案取三種狀態的最小值。
這個思路時間複雜度是 O(9n),實作簡單又安全。
DP 初始化和邊界條件是最容易丟分的地方。
Q3: Count Binary Substrings
Problem Statement:
Given a binary string s, count the number of substrings that contain consecutive 0s followed by consecutive 1s (or vice versa), where the number of 0s and 1s are equal.
思路解析:
這題其實和 LeetCode 上的經典題「Count Binary Substrings」 一樣。
- 首先遍歷字串,統計連續相同字元的長度,例如
"00011110"→[3, 4, 1]。 - 然後對相鄰的兩段長度
a[i], a[i+1],答案加上min(a[i], a[i+1])。 - 因為每個有效子字串都是從中間的「01」或「10」邊界擴展出去形成的。
舉個例子:
s = "00110011"
groups = [2,2,2,2]
result = min(2,2)+min(2,2)+min(2,2) = 6
實現上非常高效,關鍵是想到「連續段長度」這個抽象。
WeRide OA 整體感受
整套 OA:
- 平台:Hackerrank
- 題量:3 道
- 時間:90 分鐘
- 難度:中等偏易
- 考點:字串處理、動態規劃思維、基礎邏輯
WeRide 的題風格挺統一的,邏輯清晰但容易有小坑,寫的時候一定要注意輸入細節,例如日期格式、DP 初始化條件、邊界處理。
拿下 WeRide OA offer 的關鍵助攻
我們在輔導 WeRide、TuSimple、Cruise、Zoox 等自動駕駛公司 OA / 面試時,都會提供遠端無痕連線+ 語音助攻系統。確保所有測試案例 100% 通過,不通過所有測試用例不收費。我們透過遠端控制軟體 ToDesk 进行,确保无痕且不会被检测到。
這種方式特別適合 Hackerrank / Codility / CodeSignal 平台題型,
已經幫助多位同學在 WeRide、Cruise、MathWorks 等 OA 實現首戰全 AC → 拿下面試邀請。
如果你最近也在準備自動駕駛/ Quant / 大廠 OA,可以了解下我們的OA 協助方案,
真正做到「不卡點、不失誤、穩穩上岸」。