力扣(LeetCode)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] 是小写字母

思路 统计每个字符串每个字母出现的次数,找出字母出现次数最少的,即可。

java版

class Solution {
    public List<String> commonChars(String[] A) {
        List<String> list = new ArrayList<>();
		int i,j,a[][]= new int[100][26];
		for(i=0;i<A.length;i++) {
			for(j=0;j<26;j++) {
				a[i][j]=0;
			}
		}
		for(i=0;i<A.length;i++) {
			for(j=0;j<A[i].length();j++) {
				a[i][A[i].charAt(j)-97] += 1; 
			}
		}
		for(i=0;i<26;i++) {
			int min = 10000;
			for(j=0;j<A.length;j++) {
				if(min>a[j][i]) {
					min = a[j][i];
				}
			}
			for(j=0;j<min;j++) {
				char c = (char) (i + 97); 
				list.add(String.valueOf(c));
			}

		}
        return list;
    }
}

运行结果

posted @ 2019-04-05 15:50  lick  阅读(341)  评论(0编辑  收藏  举报