算法——查找常用字符

查找常用字符

https://leetcode-cn.com/problems/find-common-characters/

给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。

你可以按任意顺序返回答案。

示例 1:

输入:["bella","label","roller"]
输出:["e","l","l"]
示例 2:

输入:["cool","lock","cook"]
输出:["c","o"]
 

提示:

1 <= A.length <= 100
1 <= A[i].length <= 100
A[i][j] 是小写字母

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/find-common-characters
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

class Solution:
    def commonChars(self, l: list) -> list:
        appearance = {}
        multi = []
        for word in l:
            appearance[word] = {}
            for letter in set(word):
                appearance[word][letter] = word.count(letter)
        trial = l[0]
        for letter in trial:
            flag = True
            for word, times in appearance.items():
                if letter not in times or times[letter] == 0:
                    flag = False
                    break
            if flag:
                multi.append(letter)
                for word, times in appearance.items():
                    times[letter] -= 1
        return multi


if __name__ == '__main__':
    print(Solution().commonChars(['bella', 'label', 'roller']))
    print(Solution().commonChars(['cool', 'lock', 'cook']))
Resistance is Futile!
原文地址:https://www.cnblogs.com/noonjuan/p/11041767.html