这是悦乐书的第375次更新,第402篇原创

01 看题和准备

今天介绍的是LeetCode算法题中Easy级别的第236题(顺位题号是1002)。给定仅由小写字母组成的字符串A,返回列表中所有字符串都有显示的字符的列表(包括重复字符)。例如,如果一个字符在所有字符串中出现3次但不是4次,则需要在最终答案中包含该字符三次。

你可以按任何顺序返回答案。例如:

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

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

注意

  • 1 <= A.length <= 100

  • 1 <= A[i].length <= 100

  • A[i][j]是一个小写字母。

02 解题

题目的意思是找A中所有字符串共有的字符,即所有字符串的字符交集。比如示例中第一个字符串数组["bella","label","roller"]"bella""label"的字符交集是{'a','b','e','l','l'}"label""roller"的字符交集是{'e','l','l'},而{'a','b','e','l','l'}{'e','l','l'}的交集是{'e','l','l'},所以最后的结果是["e","l","l"]

思路:使用一个26个长度的int数组count,初始值设为整型最大值,循环处理A中的字符串,借助26个长度的int数组tem,将每个字符串中的字符出现次数记数,然后比较counttem中对应位的元素值大小(字符出现次数),取较小(求交集)的一个重新赋值给count中的对应位,最后将count数组中大于0的数转成字符串添加到List中去。

public List<String> commonChars(String[] A) {List<String> result = new ArrayList<String>();int[] count = new int[26];for (int i=0; i<26; i++) {count[i] = Integer.MAX_VALUE;}for (String str : A) {int[] tem = new int[26];for (int j=0; j<str.length(); j++) {tem[str.charAt(j)-'a']++;}for (int k=0; k<26; k++) {count[k] = Math.min(count[k], tem[k]);}}for (int i=0; i<26; i++) {while (count[i]-- > 0) {result.add((char)(i+'a')+"");}}return result;
}

03 小结

算法专题目前已连续日更超过七个月,算法题文章242+篇,公众号对话框回复【数据结构与算法】、【算法】、【数据结构】中的任一关键词,获取系列文章合集。

以上就是全部内容,如果大家有什么好的解法思路、建议或者其他问题,可以下方留言交流,点赞、留言、转发就是对我最大的回报和支持!

转载于:https://www.cnblogs.com/xiaochuan94/p/11142210.html

LeetCode.1002-寻找共有字符(Find Common Characters)相关推荐

  1. LeetCode 1002. 查找常用字符(哈希)

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

  2. LeetCode - 1002 - 查找常用字符(find-common-characters)

    一 目录 不折腾的前端,和咸鱼有什么区别 目录 一 目录 二 前言 三 解题及测试 四 LeetCode Submit 五 解题思路 二 前言 难度:简单 涉及知识:数组.哈希表 题目地址:https ...

  3. leetcode 1002. 查找常用字符

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

  4. [贪心|字符串] leetcode 3 无重复字符的最长子串

    [贪心|字符串] leetcode 3 无重复字符的最长子串 1.题目 题目链接 给定一个字符串,请你找出其中不含有重复字符的最长子串的长度. 示例1: 输入: "abcabcbb" ...

  5. LeetCode / Scala - 无重复字符最长子串 ,最长回文子串

    一.引言 LeetCode 里有一类字符子串问题,这里主要分析无重复字符的最长子串与最长回文子串,总结相关方法. 二.无重复字符最长子串 1.题目要求 给定字符串 s,要求找出字符内无重复的最长子串, ...

  6. 力扣1002.查找常用字符

    力扣 1002. 查找常用字符 本人力扣练习已上传至码云,可互相学习借鉴. 难度-简单 题目: 给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表 ...

  7. [二分搜索|快速选择] leetcode 4 寻找两个正序数组的中位数

    [二分搜索|快速选择] leetcode 4 寻找两个正序数组的中位数 1.题目 题目链接 给定两个大小为 m 和 n 的正序(从小到大)数组 nums1 和 nums2.请你找出并返回这两个正序数组 ...

  8. 1002. 查找常用字符

    链接:1002. 查找常用字符 题解:https://leetcode-cn.com/problems/find-common-characters/solution/1002-cha-zhao-ch ...

  9. 【手绘漫画】图解LeetCode之寻找重复数(LeetCode287题),抽屉原理

    文章目录 图解LeetCode刷题计划 1.写在前面 2.题目 3.正文 4.代码 5.讨论 图解LeetCode刷题计划 1.写在前面 手绘漫画系列正式上线!!!"图解LeetCode刷题 ...

最新文章

  1. mysql getconnection 如何关闭连接_【MySQL】使用连接池获取Connection执行sql以及mybatis事务注意事项...
  2. 谷歌宣布推出Dart编程新语言
  3. Django中url匹配规则的补充
  4. java map移除key为空_Java实现过滤掉map集合中key或value为空的值示例
  5. mkdir,mkdirs区别
  6. 【Redis源码分析】Redis命令处理生命周期
  7. 12个JavaScript技巧
  8. ubuntu 64 12.04 oracle,Ubuntu 12.04 (amd64)安装Oracle 11g 总结
  9. 两年前端菜鸟回忆篇(1)
  10. python找出只出现一次的数字_【LeetCode 136】只出现一次的数字(Python)
  11. 移动前端开发的一些简单分类!
  12. Deep learning for minimum mean-square error approaches to speech enhancement
  13. 2018太原理工计算机二级,太原理工大学2018年度全面绩效考核结果和发放考核绩效的通知...
  14. 2019数据安装勾选_如何安装勾选认证平台安全控件,以及如何勾选认证发票
  15. 支付宝 微信后台不死的黑科技
  16. Polkadot波卡链众筹成本价与总量、创始人团队简介
  17. Linux 系统下各种包的安装方法
  18. Spark优化-开启动态资源分配
  19. java北大青鸟视频下载_宝鸡java视频课程下载
  20. linux处理带空格文本,linux shell 处理带空格的文字

热门文章

  1. 日语平假名与片假名的区别
  2. 用Requests库爬取微博照片
  3. Torchlight(火炬之光)特效实现
  4. 3526-------团战可以输、提莫必须死 dfs做法
  5. 单片机 怎调用显示屏字库_单片机巧用Windows矢量字库
  6. 熊猫烧香源代码-(不是完整的)
  7. 测开工具:spring boot 实现mock平台
  8. 【附源码】计算机毕业设计SSM线上花店购物商城
  9. 内卷、PUA、大小周:90后决定逃离大厂
  10. 为什么浏览器突然打不开网页了?