日期:2025年10月25日
ZeroJudge 題目連結:f821. nAnB ( 正常版 )
解題想法
這題的數字不會重複,寫起來簡單很多。假設數字、位置皆相同的數量為 a,數字相同、位置不同的數量為 b,依序讀取猜測字串中的每個字元,先比較這個字元與答案中同樣位置的字元是否相同,如果相同則 a 加 1;如果前一個條件不成立,再檢查這個數字是否在答案當中,如果有則 b 加 1。
Python 程式碼
使用時間約為 19 ms,記憶體約為 3.3 MB,通過測試。
ans, m = input().split() # 正確答案,詢問筆數
n = len(ans) # 答案的字數
for _ in range(int(m)): # 執行 m 次
guess = input() # 猜測的數字
a, b = 0, 0 # 數字、位置皆正確的數量,數字正確、位置錯誤的數量
for i, c in enumerate(guess): # 依序取出 guess 的數字
if ans[i] == c: a += 1 # 數字、位置皆正確
elif c in ans: b += 1 # 數字正確、位置錯誤
print(f"{a:d}A{b:d}B")