📅  最后修改于: 2023-12-03 15:28:01.994000             🧑  作者: Mango
给定一个由小写字母组成的字符串数组 strs
和一个正整数 M
,统计在所有这些字符串中,满足至少在 M
个不同字符中出现过的字符串的数量。可以重复计算。
对于每个字符串,可以从中选择出至少 M
个不同的字符组成新的字符串。要计算的是这样的新字符串的数量。
对于每个字符串,可以使用 set 统计其中不同字符的数量。在统计完所有字符串后,使用一个数组 count
统计每个不同字符数量的字符串个数。最终的答案等于求和 count[i]
(i >= M)。
使用 Python 实现:
def count_strings(strs, M):
count = [0] * (len(strs[0]) + 1)
for s in strs:
chars = set(s)
count[len(chars)] += 1
ans = 0
for i in range(M, len(count)):
ans += count[i]
return ans
这个算法的时间复杂度为 O(nm),其中 n 是字符串数组 strs
的长度,m 是每个字符串的长度。空间复杂度为 O(m)。