leetcode1002查找常用字符

leetcode 1002 Find Common Characters

Posted by BY on October 14, 2020

前言

持续更新了

正文

问题来源

本问题来自leetcode上的1002题。

问题描述

给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。

示例 1:

输入:["bella","label","roller"]
输出:["e","l","l"]

示例 2:

输入:["cool","lock","cook"]
输出:["c","o"]

分析:

func commonChars(a []string) (ans []string) {
    minFreq := [26]int{}
    for i := range minFreq {
        minFreq[i] = math.MaxInt64
    }
    for _, word := range a {
        freq := [26]int{}
        for _, b := range word {
            freq[b-'a']++
        }
        for i, f := range freq[:] {
            if f < minFreq[i] {
                minFreq[i] = f
            }
        }
    }
    for i := byte(0); i < 26; i++ {
        for j := 0; j < minFreq[i]; j++ {
            ans = append(ans, string('a'+i))
        }
    }
    return
}

总结:

勤思考。

结语

不管怎么样好好加油。