算法提高之LeetCode刷题数据结构和算法分析

查找常用字符

2020-03-18  本文已影响0人  _阿南_

题目:

给定仅有小写字母组成的字符串数组 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] 是小写字母

题目的理解:

取任意一个字符串,然后遍历每一个字符A,获取每一个字符串中A的个数,取最小值。

python实现

class Solution:
    def commonChars(self, A: List[str]) -> List[str]:
        chars = set(list(A[0]))
        chars_count = list()
        result = list()

        from collections import Counter
        for string in A:
            c = Counter(string)
            chars_count.append(dict(c))

        for character in chars:
            nums = list()
            for diction in chars_count:
                nums.append(diction.get(character, 0))
            
            for _ in range(min(nums)):
                result.append(character)

        return result

提交

ok

// END 人生总是羡慕自己没有的,不在乎自己拥有的。

上一篇 下一篇

猜你喜欢

热点阅读