题目
给你一个字符串 text,你需要使用 text 中的字母来拼凑尽可能多的单词 "balloon"(气球)。
字符串 text 中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词 "balloon"。
示例
输入:text = "nlaebolko"
输出:1输入:text = "loonbalxballpoon"
输出:2输入:text = "leetcode"
输出:0
题解
今天的每日一题,一道挺简单的题目,直接统计输入字符串中b, a, l, o, n的字母个数再取最小值就好了,其中因为balloon中l和o出现两次,所以统计结果要除以2。
代码
class Solution {
public int maxNumberOfBalloons(String text) {
if(text == null || text.length() == 0) return 0;
char[] chs = text.toCharArray();
HashMap<Character, Integer> map = new HashMap();
for(char i : chs) {
// 只统计必要的字符即可
if(i == 'b' || i == 'a' || i == 'l'
|| i == 'o' || i == 'n') {
if(map.get(i) == null) map.put(i, 1);
else map.put(i, map.get(i)+1);
}
}
int[] res = new int[5];
for(char k : map.keySet()) {
if(k == 'b') res[0] = map.get(k);
else if(k == 'a') res[1] = map.get(k);
else if(k == 'n') res[2] = map.get(k);
else if(k == 'l') res[3] = map.get(k) / 2;
else res[4] = map.get(k) / 2;
}
// 排序后数组第一个就是结果
Arrays.sort(res);
return res[0];
}
}
Comments | NOTHING