1189.“气球” 的最大数量:计数

【LetMeFly】1189.“气球” 的最大数量:计数

力扣题目链接:https://leetcode.cn/problems/maximum-number-of-balloons/

给你一个字符串 text,你需要使用 text 中的字母来拼凑尽可能多的单词 "balloon"(气球)

字符串 text 中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词 "balloon"

 

示例 1:

输入:text = "nlaebolko"
输出:1

示例 2:

输入:text = "loonbalxballpoon"
输出:2

示例 3:

输入:text = "leetcode"
输出:0

 

提示:

  • 1 <= text.length <= 104
  • text 全部由小写英文字母组成

 

注意:本题与 2287. 重排字符形成目标字符串 相同。

解题方法:计数

使用26个(或5个)整数(数组)统计每种字母出现了多少次,则能组成的balloon的个数为以下的最小值:

  • b出现次数
  • a出现次数
  • l出现次数除以二
  • o出现次数
  • n出现次数

以上。

  • 时间复杂度$O(len(text))$
  • 空间复杂度$O(C)$,其中$C=26$或$C=5$

AC代码

C++

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/*
* @LastEditTime: 2026-06-22 19:44:41
*/
class Solution {
public:
int maxNumberOfBalloons(string text) {
int cnt[26] = {0};
for (char c : text) {
cnt[c - 'a']++;
}
return min(cnt['b' - 'a'],
min(cnt['a' - 'a'],
min(cnt['l' - 'a'] / 2,
min(cnt['o' - 'a'] / 2,
cnt['n' - 'a'])
)));
}
};

同步发文于CSDN和我的个人博客,原创不易,转载经作者同意后请附上原文链接哦~

千篇源码题解已开源


1189.“气球” 的最大数量:计数
https://blog.letmefly.xyz/2026/06/22/LeetCode 1189.“气球”的最大数量/
作者
发布于
2026年6月22日
许可协议