力扣刷題筆記:面試題 16.15. 珠璣妙算(列表操作,簡單易懂,速度不比雜湊錶慢)
阿新 • • 發佈:2021-02-10
題目:
面試題 16.15. 珠璣妙算
珠璣妙算遊戲(the game of master mind)的玩法如下。
計算機有4個槽,每個槽放一個球,顏色可能是紅色(R)、黃色(Y)、綠色(G)或藍色(B)。例如,計算機可能有RGGB 4種(槽1為紅色,槽2、3為綠色,槽4為藍色)。
作為使用者,你試圖猜出顏色組合。打個比方,你可能會猜YRGB。要是猜對某個槽的顏色,則算一次“猜中”;要是隻猜對顏色但槽位猜錯了,則算一次“偽猜中”。注意,“猜中”不能算入“偽猜中”。
給定一種顏色組合solution和一個猜測guess,編寫一個方法,返回猜中和偽猜中的次數answer,其中answer[0]為猜中的次數,answer[1]為偽猜中的次數。
示例:
輸入: solution=“RGBY”,guess=“GGRR”
輸出: [1,1]
解釋: 猜中1次,偽猜中1次。
提示:
len(solution) = len(guess) = 4
solution和guess僅包含"R",“G”,“B”,"Y"這4種字元
題解思路:
1.猜中次數=顏色和位置完全對應的字元的總數;
2.偽猜中次數=猜中顏色總次數-猜中顏色和位置次數(即猜中次數)
題解python程式碼:
class Solution:
def masterMind(self, solution: str, guess: str ) -> List[int]:
ans = [0]*2
for a,b in zip(solution,guess):
if a == b:
ans[0] += 1
solution = list(solution)
for i in guess:
if i in solution:
solution.remove(i)
ans[1] += 1
ans[1] -= ans[ 0]
return ans
作者:nekocharms
連結:https://leetcode-cn.com/problems/master-mind-lcci/solution/lie-biao-cao-zuo-yi-dong-by-nekocharms/
來源:力扣(LeetCode)https://leetcode-cn.com/problems/master-mind-lcci/submissions/