给定仅有小写字母组成的字符串数组 A,返回列表中的每个字符串中都显示的全部字符(包括重复字符)组成的列表。
例如,如果一个字符在每个字符串中出现 3 次,但不是 4 次,则需要在最终答案中包含该字符 3 次。
你可以按任意顺序返回答案。
示例 1:
输入:["bella","label","roller"]
输出:["e","l","l"]
示例 2:
输入:["cool","lock","cook"]
输出:["c","o"]

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

思路:第一步:每个字符串都是由26个字符构成,所以我们定义两个整型数组arr(表示最后统计每个字符出现的次数)和array(表示每一个字符串中字符出现的个数),将arr数组初始化为100,array初始化为0;

第二步:遍历字符数组s,统计该字符串中每个字符出现个数,赋给array(每次统计前将array初始化为0),最后将arr[i] = Math.min(array[i],arr[i]) (由于我们只统计每个字符在每个字符串中出现的次数,所以要取最小值);

第三步:对arr数组进行遍历,把每个字符添加list集合中;

代码如下:

public static List<String> commonChars(String[] s) {
//定义并初始化两个数组arr和array
int[] arr = new int[26];
int[] array = new int[26];
for(int i = 0;i<26;i++) {
arr[i] = 100;
array[i] = 0;
}
for(String str : s) {
//初始化array
for(int i = 0;i<26;i++) {
array[i] = 0;
}
//统计每个字符出现的次数
for(int i = 0;i<str.length();i++) {
++array[str.charAt(i) - 'a'];
}
//统计每个字符在当前字符串之前所有字符串出现的次数,以出现最少次数为标准赋值
for(int i = 0;i<26;i++) {
arr[i] = Math.min(arr[i], array[i]);
}
}
List<String> list = new ArrayList<String>();
//遍历arr
for(int i = 0;i<26;i++) {
//j<arr[i] 判断每个字符出现个数,然后进行添加
for(int j = 0;j<arr[i];j++) {
String ch = "";
ch+=(char)('a'+i);
list.add(ch);
}
}
return list;
}

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

  1. java初探秘之推断输入的一串字符是否全为小写字母

    import java.io.IOException; import java.util.*; public class Two { public static void main(String[] ...

  2. [Swift]LeetCode1002. 查找常用字符 | Find Common Characters

    Given an array A of strings made only from lowercase letters, return a list of all characters that s ...

  3. 力扣(LeetCode)1002. 查找常用字符

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

  4. Leetcode 1002. 查找常用字符

    1002. 查找常用字符  显示英文描述 我的提交返回竞赛   用户通过次数301 用户尝试次数324 通过次数303 提交次数480 题目难度Easy 给定仅有小写字母组成的字符串数组 A,返回列表 ...

  5. 1002. 查找常用字符 leecode

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

  6. 力扣(LeetCode)查找常用字符 个人题解

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

  7. matlab中的字符串数组与函数调用

    1, matlab中的字符串就是1维字符数组,即如: a = 'dddssd'; b = 'lsde'; c = [a, b]; 当然也可以: c= strcat(a, b); 2, matlab中的 ...

  8. java里如何实现循环打印出字符串或字符串数组里的内容

    不多说,直接上干货! java里如何实现循环打印出字符串里的内容 思路:可以先将字符串转换成字符串数组. public class test { public static void main(Str ...

  9. 给定两个字符串 s 和 t,它们只包含小写字母。 字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母。 请找出在 t 中被添加的字母。

    给定两个字符串 s 和 t,它们只包含小写字母.字符串 t 由字符串 s 随机重排,然后在随机位置添加一个字母.请找出在 t 中被添加的字母. 示例: 输入: s = "abcd" ...

随机推荐

  1. 面向对象(metaclass继承高级用法)

    方法一:# class MyType(type):# def __init__(self,*args,**kwargs):# print('132')# super(MyType,self).__in ...

  2. 18)django-模板的过滤器和tag,自定义simple_tag和filter

    模板过滤器是在变量被显示前修改它的值的一个简单方法. 过滤器使用管道字符 . 模板标签(template tag) .标签(tag)定义比较明确,即: 仅通知模板系统完成某些工作的标签.  一:dja ...

  3. android7.0以上使用融云即使通讯的坑

    一.连接服务器不走connect()方法 在android6.0以下,在使用融云sdk时,直接将依赖库引入到项目中即可.但是在7.0及以上时,直接应用会发现消息一直发送不出去,错误提示为dlopen ...

  4. RedHat Linux关闭seLinux命令

    Redhat使用了SELinux来增强安全,关闭的办法为: 1. 永久有效 修改 /etc/selinux/config 文件中的 SELINUX="" 为 disabled ,然 ...

  5. 微信video最上层解决问题

    /*  http://blog.csdn.net/kepoon/article/details/53608190  */ //x5-video-player-type="h5" x ...

  6. Java的家庭记账本程序(D)

    日期:2019.2.8 博客期:031 星期一 今天是把程序的查询功能以列表的形式完成了! 截图如下:

  7. doy09 文件处理,拷贝文件

    一\在python中打开文件,得到文件语句并赋值给一个变量 f=open('a.txt','r',encoding='utf-8'))  默认打开模式就为r: 2.通过句柄对文件进行操作 data=f ...

  8. 1010:Tempter of the Bone

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1010 Problem Description The doggie found a bone in a ...

  9. queryset优化 。。。。。exists()与iterator()方法

    exists()方法!! 判断queryset是否有值存在.exists()    只会查询一个字段 .正常会查所有!!! iterator()方法 objs = Book.objects.all() ...

  10. jenkins 回滚发布

    #jenkins拉取文件路径 workspace=/data/wos/testtemp #备份路径 backspace=/data/wos/back #不能提Git的文件 config=/data/w ...