diff --git a/Algorithms/1189. Maximum Number of Balloons/1189. Maximum Number of Balloons.go b/Algorithms/1189. Maximum Number of Balloons/1189. Maximum Number of Balloons.go new file mode 100644 index 00000000..a4bcbc40 --- /dev/null +++ b/Algorithms/1189. Maximum Number of Balloons/1189. Maximum Number of Balloons.go @@ -0,0 +1,14 @@ +package leetcode + +func maxNumberOfBalloons(text string) int { + fre := make([]int, 26) + for _, t := range text { + fre[t-'a']++ + } + // 字符 b 的频次是数组下标 1 对应的元素值 + // 字符 a 的频次是数组下标 0 对应的元素值 + // 字符 l 的频次是数组下标 11 对应的元素值,这里有 2 个 l,所以元素值需要除以 2 + // 字符 o 的频次是数组下标 14 对应的元素值,这里有 2 个 o,所以元素值需要除以 2 + // 字符 n 的频次是数组下标 13 对应的元素值 + return min(fre[1], min(fre[0], min(fre[11]/2, min(fre[14]/2, fre[13])))) +} diff --git a/Algorithms/1189. Maximum Number of Balloons/1189. Maximum Number of Balloons_test.go b/Algorithms/1189. Maximum Number of Balloons/1189. Maximum Number of Balloons_test.go new file mode 100644 index 00000000..959338fb --- /dev/null +++ b/Algorithms/1189. Maximum Number of Balloons/1189. Maximum Number of Balloons_test.go @@ -0,0 +1,52 @@ +package leetcode + +import ( + "fmt" + "testing" +) + +type question1189 struct { + para1189 + ans1189 +} + +// para 是参数 +// one 代表第一个参数 +type para1189 struct { + text string +} + +// ans 是答案 +// one 代表第一个答案 +type ans1189 struct { + one int +} + +func Test_Problem1189(t *testing.T) { + + qs := []question1189{ + + question1189{ + para1189{"nlaebolko"}, + ans1189{1}, + }, + + question1189{ + para1189{"loonbalxballpoon"}, + ans1189{2}, + }, + + question1189{ + para1189{"leetcode"}, + ans1189{0}, + }, + } + + fmt.Printf("------------------------Leetcode Problem 1189------------------------\n") + + for _, q := range qs { + _, p := q.ans1189, q.para1189 + fmt.Printf("【input】:%v 【output】:%v\n", p, maxNumberOfBalloons(p.text)) + } + fmt.Printf("\n\n\n") +} diff --git a/Algorithms/1189. Maximum Number of Balloons/README.md b/Algorithms/1189. Maximum Number of Balloons/README.md new file mode 100755 index 00000000..b55129e8 --- /dev/null +++ b/Algorithms/1189. Maximum Number of Balloons/README.md @@ -0,0 +1,48 @@ +# [1189. Maximum Number of Balloons](https://leetcode.com/problems/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:** + +![](https://assets.leetcode.com/uploads/2019/09/05/1536_ex1_upd.JPG) + + Input: text = "nlaebolko" + Output: 1 + +**Example 2:** + +![](https://assets.leetcode.com/uploads/2019/09/05/1536_ex2_upd.JPG) + + 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. + + +## 题目大意 + +给你一个字符串 text,你需要使用 text 中的字母来拼凑尽可能多的单词 "balloon"(气球)。字符串 text 中的每个字母最多只能被使用一次。请你返回最多可以拼凑出多少个单词 "balloon"。 + +提示: + +- 1 <= text.length <= 10^4 +- text 全部由小写英文字母组成 + +## 解题思路 + + +- 给出一个字符串,问这个字符串里面的数组能组成多少个 **balloon** 这个单词。 +- 简单题,先统计 26 个字母每个字母的频次,然后取出 balloon 这 5 个字母出现频次最小的值就是结果。