Given a string text, you want to use the characters of text to form as many instances of the word "balloon" as possible.

You can use each character in text at most once. Return the maximum number of instances that can be formed.

Example 1:

Input: text = "nlaebolko"
Output: 1

Example 2:

Input: text = "loonbalxballpoon"
Output: 2

Example 3:

Input: text = "leetcode"
Output: 0

这道题给了一个字符串 text,问用其中的字符最多能组成多少个 ballon,每个字符最多使用一次。对于一道 Easy 的题目来说,并没有太大的难度,就是考察了一个统计字符出现的次数的操作,用一个 HashMap 来建立每个字符和其出现次数之间的映射就可以了。balloon 中的字符 b,a,n 分别出现了一次,l和o出现了两次,怎么算最多能拼成多个 balloon 呢,当然要找这些字符出现次数最少的那个,就像木桶盛水一样,最短的那个板子决定了盛水总量。然后遍历 balloon 中的每个字符,取其中的最小值,注意对于l和o字符要将次数除以2,因为它们分别都出现了2次,最终返回这个最小值即可,参见代码如下:


class Solution {
public:
    int maxNumberOfBalloons(string text) {
        int res = INT_MAX;
        string balloon = "balloon";
        unordered_map<char, int> charCnt;
        for (char c : text) ++charCnt[c];
        for (char c : balloon) {
            if (c == 'l' || c == 'o') res = min(res, charCnt[c] / 2);
            else res = min(res, charCnt[c]);
        }
        return res;
    }
};

Github 同步地址:

https://github.com/grandyang/leetcode/issues/1189


参考资料:

https://leetcode.com/problems/maximum-number-of-balloons/

https://leetcode.com/problems/maximum-number-of-balloons/discuss/382396/JavaPython-3-Count-solution-w-analysis.

https://leetcode.com/problems/maximum-number-of-balloons/discuss/382401/WithComments-StraightForward-Java-Simple-count-of-chars


标签智能推荐:

[LeetCode] 104. Maximum Depth of Binary Tree 二叉树最大深度

地址:https://github.com/grandyang/leetcode/issues/104类似题目:BalancedBinaryTreeMinimumDepthofBinaryTreeMaximumDepthofN-aryTree参考资料:https://leetcode.com/problems/maximum-depth-of-binary-tree/https://leetcod

a282周赛

题目的目的一目了然,就是想找到两个字符串互相不同的字母数量。新建两个int数组用于储存两字符串中各字母出现的数量,然后再将它们相应做差得到的结果相加,即为所求。6010:先排序,然后计算出可能耗费的最大时间,作为右侧边界,以最左侧为左边界,进行二分查找。除法结果取整即为趟数,进行累加然后再二分。6011:动态规划DP的题目。稍微有些复杂,还没看懂,暂时mark一下,等能力够了再补上。三.心得思路上

二叉树相关题目

tps://leetcode-cn.com/problems/binary-tree-level-order-traversal-ii/二叉树的属性https://leetcode-cn.com/problems/same-tree/https://leetcode-cn.com/problems/maximum-depth-of-binary-tree/https://leetcode-cn.c

力扣 53:最大子序和

题目:给定一个整数数组&nbsp;nums&nbsp;,找到一个具有最大和的连续子数组(子数组最少包含一个元素),返回其最大和。大佬的题解:https://leetcode-cn.com/problems/maximum-subarray/solution/dong-tai-gui-hua-fen-zhi-fa-python-dai-ma-java-dai/

[LeetCode] 1072. Flip Columns For Maximum Number of Equal Rows

成的矩阵&nbsp;matrix,从中选出任意数量的列并翻转其上的&nbsp;每个&nbsp;单元格。翻转后,单元格的值从0变成1,或者从1变为0。回经过一些翻转后,行与行之间所有值都相等的最大行数。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/flip-columns-for-maximum-number-of-equal-rows著作权归

5638. 吃苹果最大数目 优先队列

ples=[1,2,3,5,2],days=[3,2,1,4,2]输出:7解释:你可以吃掉7个苹果:第一天,你吃掉第一天长出来的苹果。第二天,你吃掉一个第二天长出来的苹果。第三天,你吃掉一个第二天长出来的苹果。过了这一天,第三天长出来的苹果就已经腐烂了。第四天到第七天,你吃的都是第四天长出来的苹果。来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems

5815. 扣分后最大得分 dp

;mxn&nbsp;的整数矩阵&nbsp;points&nbsp;(下标从0&nbsp;开始)。一开始你的得分为0&nbsp;,你想最大化从矩阵中得到的分数。你的得分方式为:每一行&nbsp;中选取一个格子,选中坐标为&nbsp;(r,c)&nbsp;的格子会给你的总得分增加&nbsp;points[r][c]&nbsp;。然而,相邻行之间被选中的格子如果隔得太远,你会失去一些得分。对于相邻行&n

[Leetcode 104]二叉树最大深度Maximum Depth of Binary Tree

题目求二叉树的深度,即根节点出发的最长路径上点的个数,即最长路径+1(本身这个点https://leetcode.com/problems/maximum-depth-of-binary-tree/Giventhe&nbsp;root&nbsp;ofabinarytree,return&nbsp;itsmaximumdepth.Abinarytree's&nbsp;maximumdepth&nbs

二叉树最大深度

给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:&nbsp;叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7]&nbsp;来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree方法一:递归#Definitio

C++ 二叉树最大深度 递归与非递归 [LeetCode]

题目:给定一个二叉树,找出其最大深度。二叉树的深度为根节点到最远叶子节点的最长路径上的节点数。说明:&nbsp;叶子节点是指没有子节点的节点。示例:给定二叉树[3,9,20,null,null,15,7],3/\920/\157返回它的最大深度&nbsp;3。链接:https://leetcode-cn.com/problems/maximum-depth-of-binary-tree递归做法类似