
给你一个字符串数组 words ,请你找出所有在 words 的每个字符串中都出现的共用字符( 包括重复字符),并以数组形式返回。你可以按 任意顺序 返回答案。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/find-common-characters
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路:哈希表,直接找到所有共有字母,然后分别找出字典中每个字母中数量最小的值,然后组成新列表
python3实现:
class Solution:
def commonChars(self, words: List[str]) -> List[str]:
# 直接哈希表统计
l1 = []
for elem in words:
each = collections.Counter(elem)
l1.append(each)
# 取共同key值最小的value值
dic_ = {}
standard_key = l1[0].keys()
for key in standard_key:
tmp = l1[0][key]
for every in l1[1:]:
if key in every:
tmp = min(every[key], tmp)
else:
tmp = 0
break
dic_[key] = tmp
# 根据得到的结果构成新列表
final_list = []
for k in dic_:
if dic_[k] != 0:
for count in range(dic_[k]):
final_list.append(k)
return final_list
