【LeetCode】1002. Find Common Characters 解题报告(Python)

题目大意:
查找多个字符串交集字母
在这里插入图片描述
一开始我想用set求交集去做,后来发现涉及到两个‘l’时set指挥保留一个,所以就用最基本的思路做吧。

解题思路:
1.对于26个字母出现次数初始化为最大值
2.循环这个输入列表
3.对于每个单词用ascii码作为下标,记录出现次数
4.取26个字母总的出现次数与当前单词出现次数的最少次

提交代码:(Runtime: 56 ms, faster than 46.38 % )

class Solution:
    def commonChars(self, A: 'List[str]') -> 'List[str]':
        ret = [float('inf')] * 26
        for w in A:
            sc = [0] * 26
            for c in w:
                # 97, ord(a)
                sc[ord(c)-97] += 1
            for i in range(len(sc)):
                ret[i] = min(sc[i], ret[i])
        l = []
        for i in range(len(ret)):
                l.extend(chr(i+97) * ret[i])
        return l
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值