Skip to content

Bullsandcows

LeetCode Problem

# https://leetcode.com/problems/bulls-and-cows/

# secret = "1807", guess = "7810"
class Solution:
    def getHint(self, secret: str, guess: str) -> str:
        bulls = 0
        cows = 0
        # match
        for i in range(len(secret)):
            bulls += (int)(secret[i] == guess[i])  # 1 (8 matches 8)

        # cows
        for c in set(secret):  # count : occurences in string
            cows += min(
                secret.count(c), guess.count(c)
            )  # will return min count of all same numbers (1 1 1 1 -> 4)
            # subtract this from bulls to get actual cows (4 - 1 : 3)

        # ans
        return str(bulls) + "A" + str(cows - bulls) + "B"  # 1A3B