首页 > 编程语言 > 详细

算法——查找常用字符

时间:2019-06-17 20:32:06      阅读:105      评论:0      收藏:0      [点我收藏+]

查找常用字符

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]))

 

算法——查找常用字符

原文:https://www.cnblogs.com/noonjuan/p/11041767.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!