''' 个人理解的作者的思路:将字符重合问题使用字典来记录每个char出现的次数,遍历整个list,每次遍历都会求出中间结果(commonCharArray),中间结果的求法是对比当前字典(wordCharDict)与上一次字典(orderedDict)的记录。 ''' class : defcommonChars(self, A): orderedDict = {} for _, word in enumerate(A): wordCharDict = {} for char in word: if char in wordCharDict: value = wordCharDict[char] wordCharDict[char] = value + 1 else: wordCharDict[char] = 1
# orderedDict保存了当前公共的char及其相应的出现次数 for char, occurence in orderedDict.items(): commonOcurrence = 0 if char in wordCharDict: commonOcurrence = min(occurence, wordCharDict[char]) orderedDict[char] = commonOcurrence # 将当前为止公共的char保存起来,当最后一次遍历结束,即为最终结果 for _ in range(commonOcurrence): commonCharArray.append(char) return commonCharArray
近期评论