-
Notifications
You must be signed in to change notification settings - Fork 0
LC 0299 [M] Bulls and Cows
Code with Senpai edited this page Jun 2, 2022
·
2 revisions
class Solution:
def getHint(self, secret, guess):
bulls = 0
secret_char_to_count = defaultdict(int)
guess_char_to_count = defaultdict(int)
for x, y in zip(secret, guess):
if x == y:
bulls += 1
else:
secret_char_to_count[x] += 1
guess_char_to_count[y] += 1
cows = sum(min(secret_char_to_count[c], guess_char_to_count[c]) for c in secret_char_to_count)
return f'{bulls}A{cows}B'
class Solution(object):
def getHint(self, secret, guess):
bull, cow = 0, 0
s = {} # secret hashtable
g = {} # guess hashtable
for i in xrange(len(secret)):
if secret[i] == guess[i]:
bull += 1
else:
s[secret[i]] = s.get(secret[i], 0) + 1
g[guess[i]] = g.get(guess[i], 0) + 1
for k in s:
if k in g:
cow += min(s[k], g[k])
return '{0}A{1}B'.format(bull, cow)
def getHint(self, secret, guess):
"""
:type secret: str
:type guess: str
:rtype: str
"""
secret_map, guess_map = {}, {}
bull_count, cow_count = 0, 0
for i in range(len(secret)):
if secret[i] == guess[i]:
bull_count += 1
else:
if secret[i] in secret_map:
secret_map[secret[i]] += 1
else:
secret_map[secret[i]] = 1
if guess[i] in guess_map:
guess_map[guess[i]] += 1
else:
guess_map[guess[i]] = 1
for i in guess_map:
if i in secret_map:
cow_count += min(secret_map[i], guess_map[i])
return '%sA%sB' % (bull_count, cow_count)
footer