1002. Find Common Characters

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

 

C++: 20ms, 9.9MB

class Solution {
public:
    vector<string> commonChars(vector<string>& A) {
        map<char, int> first;
        vector<string> result;
        for (auto ch : A[0])
        {
            first[ch]++;
        }

        for (auto element : first)
        {
            for (size_t i = 1; i < A.size(); i++)
            {
                int count = 0;
                for (auto ch : A[i])
                {
                    if (element.first == ch)
                    {
                        count++;
                    }
                }

                if (count < first[element.first])
                {
                    first[element.first] = count;
                }

                if (count == 0)
                {
                    break;
                }
            }

            for (int i = 0; i < first[element.first]; i++)
            {
                result.push_back(string(1, element.first));
            }
        }

        return result;
    }
};

 

Python:

 

JavaScript:

posted @ 2019-03-08 11:18  czhao4  阅读(124)  评论(0)    收藏  举报