难度: 简单
题目
1189. “气球” 的最大数量
给你一个字符串 text,你需要使用 text 中的字母来拼凑尽可能多的单词 "balloon"(气球)。
字符串 text 中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词 "balloon"。
示例 1:
输入:text = "nlaebolko"
输出:1
示例 2:
输入:text = "loonbalxballpoon"
输出:2
示例 3:
输入:text = "leetcode"
输出:0
提示:
1 <= text.length <= 10^4
text
全部由小写英文字母组成
思路
- 先统计每个字符出现的次数
- 再计算出每个字符最多能组成多少个
balloon
- 取最小值
题解
/**
* @param {string} text
* @return {number}
*/
var maxNumberOfBalloons = function(text) {
let map = new Map()
let target = 'balloon'
for (let i = 0; i < text.length; i++) {
let currChar = text.charAt(i)
if (target.includes(currChar)) {
map.has(currChar) ? map.set(currChar, map.get(currChar) + 1) : map.set(currChar, 1)
}
}
if (map.size !== 5) {
return 0
}
let maxWord = []
map.forEach(((value, key) => {
if (key === 'l' || key === 'o') {
maxWord.push(Math.floor(value / 2))
} else {
maxWord.push(value)
}
}))
return Math.min(...maxWord)
};
结果
执行用时:76 ms, 在所有 JavaScript 提交中击败了71.65%的用户
内存消耗:38.1 MB, 在所有 JavaScript 提交中击败了98.43%的用户
通过测试用例:25 / 25