2022年02月13日 力扣每日一题
题目
给你一个字符串 text
,你需要使用 text
中的字母来拼凑尽可能多的单词 "balloon"(气球)。
字符串 text
中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词 "balloon"。
示例 1:
输入:text = "nlaebolko" 输出:1
示例 2:
输入:text = "loonbalxballpoon" 输出:2
示例 3:
输入:text = "leetcode" 输出:0
提示:
1 <= text.length <= 10^4
text
全部由小写英文字母组成
Related Topics
个人解法
一个单词”balloon”分别需要一个'b'、'a'、'n',以及二个'l'、'o'
首先我们统计给的单词中每个字母的个数
然后统计'b'、'a'、'n'数量以及'l'、'o'除以2的最小值
{% tabs categories%}
class Solution {
public int maxNumberOfBalloons(String text) {
int[] arrs = new int[26];
for (char ch : text.toCharArray()) {
arrs[ch - 'a']++;
}
int count = Math.min(arrs[0], arrs[1]);
count = Math.min(count, arrs['l' - 'a'] / 2);
count = Math.min(count, arrs['o' - 'a'] / 2);
count = Math.min(count, arrs['n' - 'a']);
return count;
}
}
class Solution:
def maxNumberOfBalloons(self, text: str) -> int:
return min(cnts[ch] // 2 if ch in "lo" else cnts[ch] for ch in "balon") if (cnts := Counter(text)) else 0
{% endtabs %}