1. 程式人生 > 其它 >Leetcode 1189. “氣球” 的最大數量

Leetcode 1189. “氣球” 的最大數量

Leetcode 1189. “氣球” 的最大數量

題目

給你一個字串 text,你需要使用 text 中的字母來拼湊儘可能多的單詞 "balloon"(氣球)。

字串 text 中的每個字母最多隻能被使用一次。請你返回最多可以拼湊出多少個單詞 "balloon"。

示例 1:

在這裡插入圖片描述

輸入:text = "nlaebolko"
輸出:1

示例 2:

在這裡插入圖片描述

輸入:text = "loonbalxballpoon"
輸出:2

示例 3:

輸入:text = “leetcode”
輸出:0

思路

  • 用map存放balloon對應的字元和出現的次數
  • 使用strings.Count函式統計text字串的對應的出現的次數
  • 取每個字元的拼湊值的最小值即可

程式碼 —— golang

func maxNumberOfBalloons(text string) int {
	res := math.MaxInt32
	str := map[string]int {
		"b": 1,
		"a": 1,
		"l": 2,
		"o": 2,
		"n": 1,
	}
	
	for ch, mod := range str {
		count := strings.Count(text, string(ch))
		res = int(math.Min(float64(res), float64(count / mod)))
	}

	return res
}