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" 了!🚀