## 1189. Maximum Number of Balloons

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 <= 10^4`
• `text` consists of lower case English letters only.

## Rust Solution

``````struct Solution;

use std::collections::HashMap;

impl Solution {
fn max_number_of_balloons(text: String) -> i32 {
let mut text_count: HashMap<char, usize> = HashMap::new();
let mut ballon_count: HashMap<char, usize> = HashMap::new();
for c in "balloon".chars() {
*ballon_count.entry(c).or_default() += 1;
}
for c in text.chars() {
*text_count.entry(c).or_default() += 1;
}

let mut min = text.len();
for (c, v) in ballon_count {
min = usize::min(text_count.get(&c).unwrap_or(&0) / v, min);
}
min as i32
}
}

#[test]
fn test() {
let text = "nlaebolko".to_string();
assert_eq!(Solution::max_number_of_balloons(text), 1);
let text = "loonbalxballpoon".to_string();
assert_eq!(Solution::max_number_of_balloons(text), 2);
let text = "leetcode".to_string();
assert_eq!(Solution::max_number_of_balloons(text), 0);
}
``````

Having problems with this solution? Click here to submit an issue on github.