【leetcode】299. Bulls and Cows
题目如下:
解题思路:本题难度不太大,对时间复杂度也没有很高的要求。我的做法是用一个字典来保存每个字符出现的次数,用正数1记录标记secret中出现的字符,用负数1记录guess中出现的字符,这样每出现一次正负抵消,即表示出现了一次cow。
代码如下:
class Solution(object): def getHint(self, secret, guess): """ :type secret: str :type guess: str :rtype: str """ dic = {} bull = 0 cow = 0 for i in xrange(len(secret)): if secret[i] == guess[i]: bull += 1 else: if dic.has_key(secret[i]): if dic[secret[i]] < 0: cow += 1 dic[secret[i]] += 1 else: dic[secret[i]] = 1 if dic.has_key(guess[i]): if dic[guess[i]] > 0: cow += 1 dic[guess[i]] -= 1 else: dic[guess[i]] = -1 if dic[guess[i]] == 0: del dic[guess[i]] if dic[secret[i]] == 0: del dic[secret[i]] return str(bull) + 'A' + str(cow) + 'B'