1189. “气球” 的最大数量『简单』

Posted zhiyin1209

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1189. “气球” 的最大数量『简单』相关的知识,希望对你有一定的参考价值。

题目来源于力扣(LeetCode

一、题目

1189. “气球” 的最大数量

题目相关标签:哈希表、字符串

技术图片

提示:

  • 1 <= text.length <= 10^4
  • text 全部由小写英文字母组成

二、解题思路

  1. 遍历 text 字符串转换成的字符数组

  2. 通过哈希数组记录下 text 字符串中各元素出现的次数(数组索引为字符元素,值为元素在字符串中出现的次数)

  3. 在哈希数组中计算出字符 b、a、l、o、n 各出现的次数

    其中 lo 需要出现两次才能组成 balloon

  4. 结果为 b、a、l、o、n 字符中出现次数最小的

三、代码实现

public static int maxNumberOfBalloons(String text) {
        int[] letters = new int[26];
        char[] arr = text.toCharArray();
        for (char i : arr) {
            letters[i - ‘a‘]++;
        }
        int res = text.length();

        letters[‘l‘ - ‘a‘] /= 2;  // l 字符需要出现2次,才能组成单词
        letters[‘o‘ - ‘a‘] /= 2;  // o 字符需要出现2次,才能组成单词

        for (char i : "balon".toCharArray()) {
            // b a l o n 字符任一为零时,res 也为 0
            res = Math.min(letters[i - ‘a‘], res);
        }
        return res;
    }

四、执行用时

技术图片

五、部分测试用例

public static void main(String[] args) {
    String text = "nlaebolko";  // output: 1
//    String text = "loonbalxballpoon";  // output: 2
//    String text = "leetcode";  // output: 0

    int result = maxNumberOfBalloons(text);
    System.out.println(result);
}

以上是关于1189. “气球” 的最大数量『简单』的主要内容,如果未能解决你的问题,请参考以下文章

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

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

LeetCode 1189. “气球” 的最大数量

力扣 1189“气球” 的最大数量

力扣 1189“气球” 的最大数量

LeetCode --- 字符串系列 ---“气球” 的最大数量