题目
给你一个字符串 text,你需要使用 text 中的字母来拼凑尽可能多的单词 “balloon”(气球)。
字符串 text 中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词 “balloon”。

示例 1:
输入:text = “nlaebolko”
输出:1

示例 2:
输入:text = “loonbalxballpoon”
输出:2

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/maximum-number-of-balloons
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

解题思路:
将所有字母个数记录入数组,循环依次减去目标单词字母,若字母个数小于0则说明无法凑齐一个单词,返回能够拼成单词个数,每次循环结束单词个数加一。
本题解可以范式使用,对于所有目标单词都可以得到拼出个数。

数组代码

class Solution {
public:string target = "balloon";//保存目标单词int words[26], result = 0, *record;//words记录所有字母个数;result保存拼出单词个数;record保存字母在字母表里对应的下标位置。int maxNumberOfBalloons(string text) {int lengths = target.length();//保存目标单词长度。record = (int*)calloc(lengths, sizeof(int));for(int i = 0; i < lengths; i++){record[i] = target[i] - 97;}for(auto i : text){words[i - 97]++;}while(true){//循环依次减去对应单词字母个数for(int i = 0; i < lengths; i ++){if(--words[record[i]] < 0){return result;}//字母个数小于0说明无法拼成一个单词,结束循环返回个数}result ++;//完成一次单词循环,个数加一}return result;}
};

哈希表代码

class Solution {
public:string target = "balloon";int maxNumberOfBalloons(string text) {int result = 0;unordered_map<char, int> record;for(auto i : text){record[i]++;}while(true){for(auto i : target){if(--record[i] < 0){return result;}}result ++;}return result;}
};

作者:yi-si-cb
链接:https://leetcode-cn.com/problems/maximum-number-of-balloons/solution/xie-shi-shu-zu-ha-xi-c-by-yi-si-cb-jvgy/

每日一题:16. “气球” 的最大数量 (C++)相关推荐

  1. SQL每日一题(20201030)QTY表示发货数量,MIN_QTY表示最小发货量

    SQL每日一题(20211222) SQL每日一题(20220517) /** 此题涉及到递归,先用oracle的方法来解决 1.先用ceil函数来得到需要几次 比如celi(170/100) 需要2 ...

  2. LeetCode简单题之“气球” 的最大数量

    题目 给你一个字符串 text,你需要使用 text 中的字母来拼凑尽可能多的单词 "balloon"(气球). 字符串 text 中的每个字母最多只能被使用一次.请你返回最多可以 ...

  3. LeetCode 每日一题 1833. 雪糕的最大数量

    1833. 雪糕的最大数量 夏日炎炎,小男孩 Tony 想买一些雪糕消消暑. 商店中新到 n 支雪糕,用长度为 n 的数组 costs 表示雪糕的定价,其中 costs[i] 表示第 i 支雪糕的现金 ...

  4. 《LeetCode之每日一题》:148.回旋镖的数量

    回旋镖的数量 有关题目 题解 题目链接: 回旋镖的数量 有关题目 给定平面上 n 对 互不相同 的点 points ,其中 points[i] = [xi, yi] .回旋镖 是由点 (i, j, k ...

  5. 「 每日一练,快乐水题 」1189. “气球” 的最大数量

    ✅力扣原题: 力扣链接:1189. "气球" 的最大数量 ✅题目简述: 给你一个字符串 text,你需要使用 text 中的字母来拼凑尽可能多的单词 "balloon&q ...

  6. 每日一题_447.回旋镖的数量

    每日一题_447.回旋镖的数量 leetcode 447 题目: 题意分析: 今天的题目比较简单,没有复杂的算法,主要是用空间换时间.该题是给我们平面上一系列的点,这些点都在整数格点上,然后当其中一个 ...

  7. 「每日一题」回旋镖的数量

    这是 LeetCode 上 2021-9-13 的每日一题:「447. 回旋镖的数量」 1. 题目描述 给定平面上n对互不相同的点points,其中points[i] = [xi, yi].回旋镖是由 ...

  8. LeetCode每日一题(22年1月7日-1月16日)

    目录(每日一题) 1614. 括号的最大嵌套深度 89. 格雷编码 1629. 按键持续时间最长的键 306. 累加数 1036. 逃离大迷宫 334. 递增的三元子序列 747. 至少是其他数字两倍 ...

  9. 【每日一题】 1128. 等价多米诺骨牌对的数量

    [每日一题] 1128. 等价多米诺骨牌对的数量 避免每日太过咸鱼,一天搞定一道LeetCode算法题 一.题目描述 给你一个由一些多米诺骨牌组成的列表 dominoes. 如果其中某一张多米诺骨牌可 ...

  10. 【牛客每日一题】4.16 逆序对 ( 数学 , 排列组合 ,快速幂 , 快速乘 )

    [每日一题]逆序对 链接:https://ac.nowcoder.com/acm/problem/14731 来源:牛客网 题目描述 求所有长度为n的01串中满足如下条件的二元组个数: 设第i位和第j ...

最新文章

  1. MySQL中文全文索引
  2. 技术主管和架构师的职责
  3. python之闭包的实现
  4. 一个好用的查看Angular应用ngrx状态的Chrome扩展:Redux devTools
  5. 自定义权限 android,如何在Android中使用自定义权限?
  6. 《戏说网络二三事》序1
  7. python删除对象引用_使用Python删除内存中的对象
  8. python discuz搜索api_Django用内置方法实现简单搜索功能的方法
  9. 计算机一级专题训练,计算机等级考试一级MSOFFICE综合训练试题
  10. 计算机可用内存分配失败,你们都被忽悠了! 其实可用内存大才有用
  11. 通过CSS来垂直居中文本
  12. 2019-4(2)-数据挖掘学习笔记
  13. Python 标准库 —— 文件解压(zip、gz、pkl、tar)
  14. 手机扫描电脑二维码登录原理
  15. Xcode6 app沙盒目录
  16. VulnHub-XXE
  17. 怎么去学习绘画格子裙?该怎么画格子裙?
  18. spring boot: Whitelabel Error Page(小白的终极解决方案)
  19. Redis看这一篇就够了
  20. (附源码)ssm+mysql+基于ssm技术的校自助阅览室的设计与实现 毕业设计242326

热门文章

  1. windows 技术篇-局域网文件传输效率优化实例演示,下载共享地址里的文件慢解决方法
  2. 康托尔集的物理意义1.2
  3. python写cdr插件_CDR插件: YG辅助增强插件 完美支持Win3264位 CorelDRAW X4-2018 免费下载附详细图文教程...
  4. Android Persistent常驻内存分析
  5. (一)软件测试的目的和定义
  6. 游戏开发中的数学基础
  7. 在centos中安装qq音乐
  8. docker 内安装字体
  9. 业务安全之接口调用安全
  10. 软件工程考研笔记整理(三小时速成)(1)