美文网首页
【Leetcode-1002】哈希表-查找常用字符

【Leetcode-1002】哈希表-查找常用字符

作者: Murrey_Xiao | 来源:发表于2020-10-15 08:22 被阅读0次

2020-10-14 打卡题-查找重复字符

给定仅有小写字母组成的字符串数组 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] 是小写字母

  • 题解:利用哈希方式记录每个字符串在每个字符上的次数,最后根据最小次数输出字符即可


    图示
public class CommonChars {
    public List<String> commonChars(String[] A) {
        List<String> result = new ArrayList<>();
        int mark[][] = new int[A.length][26];
        for (int i = 0; i < A.length; i++) {
            for (int j = 0; j < A[i].length(); j++) {
                mark[i][A[i].charAt(j)-'a'] +=1;
            }
        }
//        for (int i = 0; i < A.length; i++) {
//            for (int j = 0; j < 26; j++) {
//                System.out.print(mark[i][j]+" ");
//            }
//            System.out.println();
//        }
        for (int i = 0; i < 26; i++) {
            int min_cnt = Integer.MAX_VALUE;
            boolean cnt_flag = true;
            for (int j = 0; j < A.length; j++) {
                if(mark[j][i] == 0){
                    cnt_flag = false;
                    break;
                }
                else{
                    min_cnt = Math.min(min_cnt,mark[j][i]);
                }
            }
            if(min_cnt > 0 && cnt_flag){
                for (int j = 0; j < min_cnt; j++) {
                    result.add(String.valueOf((char) (i + 'a')));
                }
            }
        }
        return result;
    }
}

相关文章

  • 【Leetcode-1002】哈希表-查找常用字符

    2020-10-14 打卡题-查找重复字符 给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的...

  • MySQL面试题

    索引 索引原理 常用的索引模型有哈希索引,有序数组,搜索树。哈希索引,适合等值查找,范围查找会触发全表扫描有序数组...

  • 04 | 讲深入浅出索引(上)

    04 | 讲深入浅出索引(上)索引结构 : 哈希表 , 有序数组 , 查找树 (都是查找表)哈希只能 equa...

  • 算法和数据结构(一)—— 查找和排序

    查找和排序都是程序设计中经常用到的算法。查找相对而言较为简单,不外乎顺序查找、二分查找、哈希表查找和二叉排序树查找...

  • 散列表的原理与实现

    哈希表的实现原理 还是利用数组来实现,直接下标查找,增加,删除,效率较高思路:将字符串转成下标值,根据下标直接查找...

  • day33linux

    一、vi 字符串查找(常用) :/要查找的字符串(从上往下找) 敲enter开始查找 n带表下一个 N代表上...

  • golang 字典map

     当在哈希表中查找某个与键值对应的元素值时,我们需要先把键值作为参数传给这个哈希表。哈希表会先用哈希函数(hash...

  • 拓展

    哈希算法 Python哈希查找,构建简单哈希表http://blog.csdn.net/tingyun_say/a...

  • DPDK编程指南(翻译)( 十二)

    12.哈希库 DPDK提供了一个用于创建哈希表的哈希库,哈希表可以用于快速查找。哈希表是针对一组条目进行搜索而优化...

  • 程序员,你应该知道的数据结构之哈希表

    哈希表简介 哈希表也叫散列表,哈希表是一种数据结构,它提供了快速的插入操作和查找操作,无论哈希表总中有多少条数据,...

网友评论

      本文标题:【Leetcode-1002】哈希表-查找常用字符

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