Skip to content

Latest commit

 

History

History
46 lines (32 loc) · 973 Bytes

Find Common Characters.md

File metadata and controls

46 lines (32 loc) · 973 Bytes
 vector<int> count(string &words)
    {
        vector<int> freq(26,0);

        for(int i=0;i<words.size();i++)
            freq[words[i]-'a']++;

        return freq;
    }

    vector<int> intersection(const vector<int> & a, const vector<int> & b)
    {
        vector<int> last(26,0);

        for(int i=0;i<26;i++)
            last[i]=min(a[i],b[i]);

        return last;
    }
    vector<string> commonChars(vector<string>& words) {

        vector<string>ans;

        vector<int> last = count(words[0]);

        for(int i=1;i<words.size();i++)
            last = intersection(last,count(words[i]));

        for(auto i=0;i<last.size();i++)
        {
            while(last[i]!=0)
            {
                ans.push_back(string(1,i+'a'));
                last[i]--;
            }
        }

        return ans;
    }