1189. “气球” 的最大数量题解
题目来源:1189. “气球” 的最大数量
2022.02.13 每日一题
统计字符串中可以组成”balloon”的数量,挺简单的,只需要统计出来字符串中有多少组可以完整组成 balloon 单词的组数就可以了。
具体代码以及注释如下:
class Solution {
public:
int maxNumberOfBalloons(string text) {
// 新建一个数组用来统计 b、a、l、o、n 各个字符的数量
vector<int> cnt(5, 0);
// 筛选出各个字符,并且统计数量
for (char ch: text) {
if (ch == 'b') {
cnt[0]++;
} else if (ch == 'a') {
cnt[1]++;
} else if (ch == 'l') {
cnt[2]++;
} else if (ch == 'o') {
cnt[3]++;
} else if (ch == 'n') {
cnt[4]++;
}
}
// 由于单词 balloon 之中,有两个 l 、 o 组成所以需要除以 2 来判断个数
cnt[2] /= 2;
cnt[3] /= 2;
// 对数组进行排序,返回数组之中的最小值,即为组成 balloon 单词的最小数量
sort(cnt.begin(), cnt.end());
return cnt[0];
}
};
class Solution {
public int maxNumberOfBalloons(String text) {
// 新建一个数组用来统计 b、a、l、o、n 各个字符的数量
int[] cnt = new int[5];
// 筛选出各个字符,并且统计数量
for (int i = 0; i < text.length(); i++) {
char ch = text.charAt(i);
if (ch == 'b') {
cnt[0]++;
} else if (ch == 'a') {
cnt[1]++;
} else if (ch == 'l') {
cnt[2]++;
} else if (ch == 'o') {
cnt[3]++;
} else if (ch == 'n') {
cnt[4]++;
}
}
// 由于单词 balloon 之中,有两个 l 、 o 组成所以需要除以 2 来判断个数
cnt[2] /= 2;
cnt[3] /= 2;
// 对数组进行排序,返回数组之中的最小值,即为组成 balloon 单词的最小数量
Arrays.sort(cnt);
return cnt[0];
}
};