1. 程式人生 > 其它 >力扣刷題筆記:面試題 16.15. 珠璣妙算(列表操作,簡單易懂,速度不比雜湊錶慢)

力扣刷題筆記:面試題 16.15. 珠璣妙算(列表操作,簡單易懂,速度不比雜湊錶慢)

技術標籤:刷題筆記leetcodepython

題目:

面試題 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/