Skip to content

1189. Maximum Number of Balloons

Description

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

 

Constraints:

  • 1 <= text.length <= 104
  • text consists of lower case English letters only.

 

Note: This question is the same as 2287: Rearrange Characters to Make Target String.

 

Solutions

Solution: Hash Table

  • Time complexity: O(n)
  • Space complexity: O(5 -> 1)

 

JavaScript

js
/**
 * @param {string} text
 * @return {number}
 */
const maxNumberOfBalloons = function (text) {
  const balloonSet = new Set('balloon');
  const balloonMap = new Map();
  let result = text.length;

  for (const char of text) {
    if (!balloonSet.has(char)) continue;

    const count = balloonMap.get(char) ?? 0;

    balloonMap.set(char, count + 1);
  }

  for (const char of balloonSet) {
    const count = balloonMap.get(char);

    if (!count) return 0;

    const freq = char === 'l' || char === 'o' ? Math.floor(count / 2) : count;

    result = Math.min(freq, result);
  }

  return result;
};

Released under the MIT license