题目
给你一个字符串 text,你需要使用 text 中的字母来拼凑尽可能多的单词 “balloon”(气球)。
字符串 text 中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词 “balloon”。
示例 1:
输入:text = "nlaebolko"
输出:1
示例 2:
输入:text = "loonbalxballpoon"
输出:2
示例 3:
输入:text = "leetcode"
输出:0
提示:
1 <= text.length <= 10^4
text 全部由小写英文字母组成
正解
自解
class Solution {
public:
int min(int a, int b) {
if (a>b)
return b;
else
return a;
}
int maxNumberOfBalloons(string text) {
string t = "balloon";
int ans = INT_MAX;
int buf[128] = {0}; //unordered_set/set中元素互不相同,无法用来计数
for(auto i : text) {
buf[i]++;
}
ans = min(ans, buf['b']);
ans = min(ans, buf['a']);
ans = min(ans, buf['l'] / 2);
ans = min(ans, buf['o'] / 2);
ans = min(ans, buf['n']);
return ans;
}
};