zoukankan      html  css  js  c++  java
  • 【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'
  • 相关阅读:
    Day6
    Day6
    Day6
    Day6
    Day6
    Day6
    LeetCode "The Skyline Problem"
    HackerRank
    HackerRank
    HackerRank
  • 原文地址:https://www.cnblogs.com/seyjs/p/8818813.html
Copyright © 2011-2022 走看看