[leetCode]1002. 查找常用字符

在这里插入图片描述

计数

使用一个数组minfreq记录字符c在所有字符串中出现的最小频次。遍历每个字符串的字符c,使用freq 记录c在当前字符串中的最小频次,每遍历完一个字符串,将每一个minfreq[c]更新为其本身与 freq[c] 的较小值

class Solution {
    public List<String> commonChars(String[] A) {
        int[] minfreq = new int[26];
        Arrays.fill(minfreq, Integer.MAX_VALUE);
        for (String word: A) {
            int[] freq = new int[26];
            int length = word.length();
            for (int i = 0; i < length; ++i) {
                char ch = word.charAt(i);
                ++freq[ch - 'a'];
            }
            for (int i = 0; i < 26; ++i) {
                minfreq[i] = Math.min(minfreq[i], freq[i]);
            }
        }

        List<String> ans = new ArrayList<String>();
        for (int i = 0; i < 26; ++i) {
            for (int j = 0; j < minfreq[i]; ++j) {
                ans.add(String.valueOf((char) (i + 'a')));
            }
        }
        return ans;
    }
}
原文地址:https://www.cnblogs.com/PythonFCG/p/13859898.html