1002. 查找常用字符
给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。
你可以按任意顺序返回答案。
Example
input |
---|
["bella","label","roller"] |
output |
["e","l","l"] |
input |
---|
["cool","lock","cook"] |
output |
["c","o"] |
Note
- 1 <= A.length <= 100
- 1 <= A[i].length <= 100
- A[i][j] 是小写字母
思路
经典字符串计数,用一个数组来记录每一个字符串a-z出现的次数,
每次取最小值,最后输出即可
代码如下
class Solution:
def commonChars(self, A: List[str]) -> List[str]:
l = len(A)
res = [float('inf')] * 26
for i in range(l):
s = [0] *26
for ch in A[i]:
s[ord(ch)-ord('a')] += 1
for i in range(26):
res[i] = min(res[i], s[i])
ans =list()
for i in range(26):
for j in range(res[i]):
ans.append(chr(ord('a') + i))
return ans