1189. “气球” 的最大数量 - 力扣(LeetCode)


要计算最多可以拼凑出多少个单词 "balloon",我们需要统计字符串 text 中各个字母的出现次数,并计算能够组成单词 "balloon" 的最大数量。
步骤
-
统计
text中各个字符的出现次数。 -
"balloon" 由以下字符组成:
-
'b'1 次 -
'a'1 次 -
'l'2 次 -
'o'2 次 -
'n'1 次
-
-
计算
text可以提供多少个 "balloon":-
b的数量 / 1 -
a的数量 / 1 -
l的数量 / 2 -
o的数量 / 2 -
n的数量 / 1
-
-
取上述计算结果的最小值,即为最多可以拼凑出的 "balloon" 数量。
Python 代码
from collections import Counter
def maxNumberOfBalloons(text: str) -> int:
count = Counter(text)
return min(count['b'] // 1, count['a'] // 1, count['l'] // 2, count['o'] // 2, count['n'] // 1)
# 测试
print(maxNumberOfBalloons("loonbalxballpoon")) # 输出: 2
print(maxNumberOfBalloons("leetcode")) # 输出: 0
print(maxNumberOfBalloons("balloonballoon")) # 输出: 2
时间复杂度
-
统计字符出现次数的复杂度为 O(n),其中
n是text的长度。 -
计算
min()的复杂度是 O(1)。 -
总体时间复杂度为 O(n)。
这样,我们就能高效地计算 text 最多能拼凑出多少个 "balloon" 了!🚀
969

被折叠的 条评论
为什么被折叠?



