LeetCode #1002. Find Common Characters
题目
解题方法
首先遍历第一个字符串,将其中每个字母出现的频数存入字典dic,然后从第二个字符串开始遍历,使用一个tempcount字典存储当前字符串每个字母出现的频数,遍历dic的主键比较两个字典的区别,如果dic中的某个字母不在tempcount中,则存入列表等待删除;如果在tempcount中,就取两个频数的最小值给dic[i]。做完这个事情之后再遍历删除列表把待删元素删了,等所有单词遍历结束之后,根据每个字母的频数往返回值中加元素就行了。
代码
class Solution:
def commonChars(self, A: List[str]) -> List[str]:
dic = {}
for i in A[0]:
if i in dic:
dic[i] += 1
else:
dic[i] = 1
for word in range(1, len(A)):
tempcount = {}
for i in A[word]:
if i in tempcount:
tempcount[i] += 1
else:
tempcount[i] = 1
delelem = []
for i in dic.keys():
if i not in tempcount:
delelem.append(i)
else:
dic[i] = min(dic[i], tempcount[i])
for i in delelem:
dic.pop(i)
rat = []
for i, j in dic.items():
while j:
rat.append(i)
j -= 1
return rat

浙公网安备 33010602011771号