维护一个二维数组,行数代表字符串的个数,列代表26个英文字母,记录个数。
class Solution {
public List<String> commonChars(String[] A) {
int[][] res = new int[A.length][26];
for(int i=0;i<A.length;i++){
String s = A[i];
char[] tmp = s.toCharArray();
for(char a:tmp){
res[i][(int)(a-'a')]++;
}
}
List<String> list = new ArrayList<>();
for(int j=0;j<26;j++){
int min = Integer.MAX_VALUE;
for(int i=0;i<res.length;i++){
min = Math.min(min,res[i][j]);
}
while(min>0){
list.add((char)('a'+j)+"");
min--;
}
}
return list;
}
}