题目链接:299. 猜数字游戏
找到并删掉 secret 和 guess 值一样,且位置一样(bulks 的数量)的数字。
secret 和 guess 剩余的数字作为两个多重集合,去掉其交集,剩下元素的数目即 cows 的数量。
from collections import Counter
class Solution:
def getHint(self, secret: str, guess: str) -> str:
bulks, cows = 0, 0
alices, bobs = list(), list()
for a, b in zip(secret, guess):
if a == b:
bulks += 1
else:
alices.append(a)
bobs.append(b)
alices, bobs = Counter(alices), Counter(bobs)
for key in set(alices.keys()).intersection(bobs.keys()):
cows += min(alices.get(key), bobs.get(key))
return f'{bulks}A{cows}B'