“气球”的最大数量
“气球”的最大数量
题目链接
题目描述
给你一个字符串 text,你需要使用 text 中的字母来拼凑尽可能多的单词 "balloon"(气球)。
字符串 text 中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词 "balloon"。
示例 1:
输入:text = "nlaebolko"
输出:1示例 2:
输入:text = "loonbalxballpoon"
输出:2示例 3:
输入:text = "leetcode"
输出:0提示:
1 <= text.length <= 10^4
text 全部由小写英文字母组成
题目解法
分析:根据描述信息,字符串中找字母拼成单词(balloon),这个单词有五个字母组成,可以使用数组来分别存储这个五个字母,对字符串进行遍历。单词中有两个字母是相同的,所有要除于2,再取出数组中最小的数就是单词数量了。
public static int maxNumberOfBalloons(String text) {
int[] cns = new int[5];
for(int i = 0; i < text.length(); ++i) {
char c = text.charAt(i);
//判断字符串中是否包含这个字母
if(c == 'b') {
cns[0]++;
}else if (c == 'a') {
cns[1]++;
}else if(c == 'l') {
cns[2]++;
}else if(c == 'o') {
cns[3]++;
}else if(c == 'n') {
cns[4]++;
}
}
cns[2] = cns[2] / 2;
cns[3] = cns[3] / 2;
//返回数组中最小的数,转为整型
return Arrays.stream(cns).min().getAsInt();
}