美文网首页
1002. 查找常用字符

1002. 查找常用字符

作者: 伶俐ll | 来源:发表于2020-10-14 20:46 被阅读0次

1002. 查找常用字符

题目描述

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

你可以按任意顺序返回答案。

示例 1:

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

示例 2:

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

提示:

1 <= A.length <= 100
1 <= A[i].length <= 100
A[i][j] 是小写字母

代码实现

class Solution {
    public List<String> commonChars(String[] A) {
       // 用来统计所有字符串里字符出现的最小频率
        int[] charCount = new int[26];
       // 遍历第一个字符串的每个字符,用第一个字符串给charCount初始化
        for(int i = 0; i<A[0].length();i++){
            charCount[A[0].charAt(i) - 'a']++;
        }
        // 从第一个字符串开始遍历数组
        for(int i = 1; i<A.length; i++){
            // 统计除第一个字符串外字符的出现频率
            int[] curCount = new int[26];
            for(int j = 0;j<A[i].length();j++){
                curCount[A[i].charAt(j) - 'a']++;
            }
            // // 更新charCount,保证charCount里统计26个字符在所有字符串里出现的最小次数
            for(int k = 0; k<26; k++){
                charCount[k] = Math.min(charCount[k], curCount[k]);
            }
        }

        //  将hash统计的字符次数,转成输出形式
        List<String> result = new ArrayList<>();
        for(int i= 0;i<26;i++){
            while(charCount[i] != 0){
                result.add(String.valueOf((char)(i+'a')));
                charCount[i]--;
            }
        }
        return result;
   }
}

解题思路

  1. 首先统计第一个字符串所有字符出现的次数,存储在charCount数组中
  2. 把其他字符串里字符的出现次数也统计出来,存储在curCount数组中
  3. 取两个数组取字符出现的最小值,此时最小值就是 一个字符在所有字符串里出现的最小次数

相关文章

  • 1002. 查找常用字符

    1002. 查找常用字符[https://leetcode-cn.com/problems/find-common...

  • 一道算法题,引出collections.Counter的特殊用法

    题目描述: 题目编号:1002. 查找常用字符 以上内容来源:力扣(LeetCode)链接:https://lee...

  • LeetCode 1002. 查找常用字符

    1002. 查找常用字符 给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复...

  • 1002. 查找常用字符

    【题目描述】给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列...

  • 1002. 查找常用字符(Python)

    更多精彩内容,请关注【力扣简单题】。 题目 难度:★★☆☆☆类型:字符串 给定仅有小写字母组成的字符串数组 A,返...

  • leetcode 1002. 查找常用字符

    leetcode[https://leetcode-cn.com/problems/find-common-cha...

  • 正则表达式1

    常用的元字符 常用的限定符 字符转义 如果你想查找元字符本身的话,比如你查找.,或者*,就出现了问题:你没办法指定...

  • c++的string库常用函数

    本片文章介绍 C++ string 的常用函数 1. 创建字符串 2. 查找 字符串查找很常见,下面介绍最常用的一...

  • 第九章 字符串的一些方法

    一些常用的字符串方法 1. indexof() 查找字符串 通过字符查找该字符的下标值 2. lastIndexO...

  • 2018-08-29

    day08-linux 1、vi字符串查找(常用):/要查找的字符串 敲enter开始查找 n代表下一个 ...

网友评论

      本文标题:1002. 查找常用字符

      本文链接:https://www.haomeiwen.com/subject/xntgpktx.html