思路:找出各个字符串的交集,
public static List<String> commonChars(String[] A) {
if(A.length < 1)return null;
List<String> l = new ArrayList<>();
int[] a = new int[26];
for(char c : A[0].toCharArray()) {//记录第一个字符串字符出现情况
a[c - 'a']++;
}
for (int i = 1; i < A.length; i++) {//遍历剩余字符串
int[] s = new int[26];
for(char c : A[i].toCharArray()) {记录第i个字符串字符出现情况
s[c - 'a']++;
}
for (int j = 0; j < 26; j++) {//两者求交集
a[j]=Math.min(a[j],s[j]);
}
}
for (int i = 0; i < a.length; i++) {//对结果集操作,
if(a[i] > 0){
for (int j = 0; j < a[i]; j++) {//当某个位置数>0时,表示该字符出现多次,重复加入到list中
l.add((char)(i+'a')+"");
}
}
}
return l;
}