題目描述
實作 Wordle 遊戲的回饋字串:給定目標單字 target 與玩家猜測 guess,輸出同長度的回饋。
符號規則:
*:字母正確且位置正確%:字母存在於目標字,但位置不對-:字母不存在
範例
Target: staff
Guess: world -> -----
Guess: worms -> ----%
Guess: fluff -> ---**
Guess: staff -> *****
關鍵難點
必須正確處理重複字母(例如 staff 有兩個 f)。因此通常用「兩遍掃描」:
- 先標記所有完全匹配
*,並扣掉可用字母數量 - 再處理剩餘位置,若字母仍有剩餘數量,標記
%
Python(Counter 版)
from collections import Counter
def wordle_feedback(target: str, guess: str) -> str:
n = len(target)
res = ['-'] * n
remaining = Counter(target)
# 第一遍:完全匹配
for i in range(n):
if guess[i] == target[i]:
res[i] = '*'
remaining[guess[i]] -= 1
# 第二遍:存在但位置不對
for i in range(n):
if res[i] == '-' and remaining[guess[i]] > 0:
res[i] = '%'
remaining[guess[i]] -= 1
return ''.join(res)
複雜度
- 時間:
O(n) - 空間:字母表固定時可視為
O(1)
需要面試輔助服務?聯絡 OA VO Service
- 📧 Email: [email protected]
- 📱 Phone: +86 17863968105
需要面試真題? 立刻聯繫微信 Coding0201,獲得真題。