Find Common Characters
Description
Given an array A
of strings made only from lowercase letters, return a list of all characters that show up in all strings within the list (including duplicates). For example, if a character occurs 3 times in all strings but not 4 times, you need to include that character three times in the final answer.
You may return the answer in any order.
Example 1:
Input: ["bella","label","roller"] Output: ["e","l","l"]
Example 2:
Input: ["cool","lock","cook"] Output: ["c","o"]
Note:
1 <= A.length <= 100
1 <= A[i].length <= 100
A[i][j]
is a lowercase letter
Solution(javascript)
/**
* 最后的结果其实是一个累积的结果
* @param {string[]} A
* @return {string[]}
*/
const commonChars = function (A = []) {
let prev = null
A.forEach((str) => {
const next = {}
for (const c of str) {
if (!prev) {
next[c] = (next[c] || 0) + 1
} else if (prev[c]) {
prev[c] -= 1
next[c] = (next[c] || 0) + 1
}
}
prev = next
})
return Object.keys(prev).reduce((acc, c) => {
for (let i = 0; i < prev[c]; i++) {
acc.push(c)
}
return acc
}, [])
}