给你一个字符串 text
,你需要使用 text
中的字母来拼凑尽可能多的单词 "balloon"(气球)。
字符串 text
中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词 "balloon"。
示例 1:
输入:text = "nlaebolko"
输出:1
示例 2:
输入:text = "loonbalxballpoon"
输出:2
示例 3:
输入:text = "leetcode"
输出:0
提示:
1 <= text.length <= 10^4
text
全部由小写英文字母组成
思路:
统计一下balon 这五个字母出现的次数,然后从五个次数里找到最小的那个返回即可,
zhu
给你一个字符串 text
,你需要使用 text
中的字母来拼凑尽可能多的单词 "balloon"(气球)。
字符串 text
中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词 "balloon"。
示例 1:
输入:text = "nlaebolko"
输出:1
示例 2:
输入:text = "loonbalxballpoon"
输出:2
示例 3:
输入:text = "leetcode"
输出:0
提示:
1 <= text.length <= 10^4
text
全部由小写英文字母
思路:
木桶原理的题,
能组成balloon个数 = balon这五个字母里出现频率最低的那个字母的频率,
比如假设有无数个alon,但是只有一个b,那么也只能组成一个balloon,
注意因为balloon里有两个 l 两个 o, 所以l 和 o 的出现频率应该视为一半。
class Solution(object):
def maxNumberOfBalloons(self, text):
"""
:type text: str
:rtype: int
"""
dic = collections.Counter(text)
#balloon
min_count = 99999999
for char in "balon":
tmp = dic[char]
if char in "lo":
tmp /= 2
min_count = min(min_count, tmp)
return min_count