# 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] 是小写字母
# 解
/**
* @param {string[]} A
* @return {string[]}
*/
const getCommon = (a, b) => {
let map = new Map();
// 遍历 a 字符串,存储字母及其次数
for (let i = 0; i < a.length; i++) {
let data = map.get(a[i]);
if (!data) {
map.set(a[i], 1);
} else {
map.set(a[i], data + 1);
}
}
//公共字符
const result = [];
// 遍历 b 字符串,将和 a 相同的取出
for (let i = 0; i < b.length; i++) {
const bData = map.get(b[i]);
if (bData) {
result.push(b[i]);
map.set(b[i], bData - 1);
}
}
return result;
};
var commonChars = function (A) {
return A.reduce((pre, next) => getCommon(pre, next));
};