题目大意:
查找多个字符串交集字母
一开始我想用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