# LC 1002. Find Common Characters ### [Problem link](https://leetcode.com/problems/find-common-characters/) ###### tags: `leedcode` `easy` `c++` Given a string array <code>words</code>, return an array of all characters that show up in all strings within the <code>words</code> (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:** - <code>1 <= words.length <= 100</code> - <code>1 <= words[i].length <= 100</code> - <code>words[i]</code> consists of lowercase English letters. ## Solution 1 #### C++ ```cpp= class Solution { public: vector<string> commonChars(vector<string>& words) { vector<string> res; vector<int> common(26, INT_MAX); for (string word: words) { vector<int> cnt(26, 0); for (auto c: word) { cnt[c - 'a']++; } for (int i = 0; i < 26; i++) { common[i] = min(common[i], cnt[i]); } } for (int i = 0; i < 26; i++) { for (int j = 0; j < common[i]; j++) { res.push_back(string(1, i + 'a')); } } return res; } }; ``` >### Complexity >m = words.length >n = sum(words[i].length) >| | Time Complexity | Space Complexity | >| ----------- | --------------- | ---------------- | >| Solution 1 | O(mn) | O(mn) | ## Note x