美文网首页算法算法提高之LeetCode刷题
1002. 查找常用字符(Python)

1002. 查找常用字符(Python)

作者: 玖月晴 | 来源:发表于2019-06-02 19:01 被阅读0次

更多精彩内容,请关注【力扣简单题】

题目

难度:★★☆☆☆
类型:字符串

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

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

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

示例

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

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

解答

方案1:统计每个单词

我们为每个单词准备一个长度为26的列表,列表中第i个元素代表字母表中第i个字母在这个单词中出现的次数,然后我们取26个字母在每个单词出现的最小次数,得到结果。

class Solution:
    def commonChars(self, A):
        """
        :param A: List[str]
        :return: List[str]
        """

        def counter(word):
            res = [0] * 26
            for a in word:
                res[ord(a)-97] += 1
            return res

        count = [counter(w) for w in A]

        min_count = [min([w[i] for w in count]) for i in range(26)]

        res = []
        for i in range(26):
            while min_count[i] > 0:
                res.append(chr(i+97))
                min_count[i] -= 1

        return res

方案2:只统计第一个单词

取出第一个单词中的所有字母组成集合,然后考察该集合中的字母在每个单词中出现过的最小次数。

class Solution(object):
    def commonChars(self, A):
        """
        :type A: List[str]
        :rtype: List[str]
        """
        res = []
        if not A:
            return res
        key = set(A[0])
        for k in key:
            minnum = min(a.count(k) for a in A)
            res += minnum*k
        return res

如有疑问或建议,欢迎评论区留言~

相关文章

  • 1002. 查找常用字符

    1002. 查找常用字符[https://leetcode-cn.com/problems/find-common...

  • 一道算法题,引出collections.Counter的特殊用法

    题目描述: 题目编号:1002. 查找常用字符 以上内容来源:力扣(LeetCode)链接:https://lee...

  • 1002. 查找常用字符(Python)

    更多精彩内容,请关注【力扣简单题】。 题目 难度:★★☆☆☆类型:字符串 给定仅有小写字母组成的字符串数组 A,返...

  • LeetCode 1002. 查找常用字符

    1002. 查找常用字符 给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复...

  • 1002. 查找常用字符

    【题目描述】给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列...

  • leetcode 1002. 查找常用字符

    leetcode[https://leetcode-cn.com/problems/find-common-cha...

  • Python字符串的操作

    Python中的字符串类型的常用方法 在字符串中查找索引 方法包括: .index()、.rindex、.find...

  • 2018-09-21字符串

    创建字符串 字符串是 Python 中最常用的数据类型。我们可以使用引号('或")来创建字符串。 查 索引查找和切...

  • python 时间模块

    python常用时间模块有time datetime记录下一些常用的方法,方便下次查找 字符串,时间格式相互转化...

  • 正则表达式1

    常用的元字符 常用的限定符 字符转义 如果你想查找元字符本身的话,比如你查找.,或者*,就出现了问题:你没办法指定...

网友评论

    本文标题:1002. 查找常用字符(Python)

    本文链接:https://www.haomeiwen.com/subject/fqtfxctx.html