先统计第一个字符串所有字符出现的次数,放在hash 中。
接下来,把其他字符串里字符的出现次数也统计出来一次放在hashOtherStr中。
然后hash 和 hashOtherStr 取最小值,这是本题关键所在,此时取最小值,就是 一个字符在所有字符串里出现的最小次数了。
class Solution(object):
def commonChars(self, words):
"""
:type words: List[str]
:rtype: List[str]
"""
dict = [0]*26
res = []
for i in range(len(words[0])):
dict[ord(words[0][i])-ord('a')] += 1
for i in range(1, len(words)):
otherdict = [0]*26
for j in range(len(words[i])):
otherdict[ord(words[i][j])-ord('a')] += 1
for k in range(26):
dict[k] = min(dict[k],otherdict[k])
for i in range(26):
while dict[i] != 0:
res.extend(chr(i+ord('a')))
dict[i] -= 1
return res