leetcode_1189 “气球” 的最大数量

942 阅读1分钟

要求

给你一个字符串 text,你需要使用 text 中的字母来拼凑尽可能多的单词 "balloon"(气球)。

字符串 text 中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词 "balloon"。

示例 1:

image.png

输入:text = "nlaebolko"
输出:1

示例 2:

image.png

输入:text = "loonbalxballpoon"
输出:2

示例 3:

输入:text = "leetcode"
输出:0

代码详解

class Solution:
    def maxNumberOfBalloons(self, text: str) -> int:
        from collections import Counter
        if not text:
            return 0
        
        cnt = Counter(text)
        cnt_balloons = Counter("balloon")

        return min([cnt[c]//cnt_balloons[c] for c in cnt_balloons])

image.png

解题思路:我们对数据text进行统计,使用Counter,然后我们在对"balloon"进行统计,我们会得到关于b,a,l,o,n的数量分布,我们使用比的关系,最少的那个就是能组成"balloon"的单词的个数(短板思想)。