添加 problem 1189

This commit is contained in:
YDZ
2019-10-21 18:26:13 +08:00
parent 596f08c52b
commit 3f9ab8a96b
3 changed files with 114 additions and 0 deletions

View File

@ -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]))))
}

View File

@ -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")
}

View File

@ -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 个字母出现频次最小的值就是结果。