Skip to content

Latest commit

 

History

History

1002

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 

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. 1 <= A.length <= 100
  2. 1 <= A[i].length <= 100
  3. A[i][j] is a lowercase letter

Companies:
TripAdvisor

Related Topics:
Array, Hash Table

Similar Questions:

Solution 1.

// OJ: https://leetcode.com/problems/find-common-characters/
// Author: github.com/lzl124631x
// Time: O(C) where C is the size of all the contents in A
// Space: O(1)
class Solution {
public:
    vector<string> commonChars(vector<string>& A) {
        vector<int> overlap(26, INT_MAX);
        for (string s : A) {
            vector<int> cnt(26, 0);
            for (char c : s) cnt[c - 'a']++;
            for (int i = 0; i < 26; ++i) overlap[i] = min(overlap[i], cnt[i]);
        }
        vector<string> ans;
        for (int i = 0; i < 26; ++i) {
            while (overlap[i]--) ans.push_back(string(1, 'a' + i));
        }
        return ans;
    }
};