1002. Find Common Characters 
Description 
Given a string array words, return an array of all characters that show up in all strings within the words (including duplicates). You may return the answer in any order.
Example 1:
Input: words = ["bella","label","roller"] Output: ["e","l","l"]
Example 2:
Input: words = ["cool","lock","cook"] Output: ["c","o"]
Constraints:
1 <= words.length <= 1001 <= words[i].length <= 100words[i]consists of lowercase English letters.
Solutions 
Solution: Hash Map
- Time complexity: O(n*word.length)
 - Space complexity: O(1)
 
JavaScript 
js
/**
 * @param {string[]} words
 * @return {string[]}
 */
const commonChars = function (words) {
  const BASE_CHAR_CODE = 'a'.charCodeAt(0);
  const result = [];
  const counts = Array.from({length: 26}).fill(Number.MAX_SAFE_INTEGER);
  for (const word of words) {
    const currentCounts = Array.from({length: 26}).fill(0);
    for (const char of word) {
      const index = char.charCodeAt(0) - BASE_CHAR_CODE;
      currentCounts[index] += 1;
    }
    for (let index = 0; index < 26; index++) {
      counts[index] = Math.min(currentCounts[index], counts[index]);
    }
  }
  for (let index = 0; index < 26; index++) {
    const char = String.fromCharCode(BASE_CHAR_CODE + index);
    const count = counts[index];
    result.push(...char.repeat(count));
  }
  return result;
};