#include <iostream>
#include <vector>
#include <string>
using namespace std;
class Solution {
public:
vector<string> commonChars(vector<string>& words) {
int freq[26];
for(int i = 0; i < 26; i++) freq[i] = 1000;
for(string word : words) {
int temp[26] = {0};
for(char c : word) temp[c - 'a']++;
for(int i = 0; i < 26; i++)
freq[i] = min(freq[i], temp[i]);
}
vector<string> result;
for(int i = 0; i < 26; i++) {
for(int j = 0; j < freq[i]; j++)
result.push_back(string(1, 'a' + i));
}
return result;
}
};
int main() {
Solution sol;
vector<string> words = {"bella", "label", "roller"};
vector<string> res = sol.commonChars(words);
for(string s : res) cout << s << " ";
cout << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RyaW5nPgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY2xhc3MgU29sdXRpb24gewpwdWJsaWM6CiAgICB2ZWN0b3I8c3RyaW5nPiBjb21tb25DaGFycyh2ZWN0b3I8c3RyaW5nPiYgd29yZHMpIHsKICAgICAgICBpbnQgZnJlcVsyNl07CiAgICAgICAgZm9yKGludCBpID0gMDsgaSA8IDI2OyBpKyspIGZyZXFbaV0gPSAxMDAwOwoKICAgICAgICBmb3Ioc3RyaW5nIHdvcmQgOiB3b3JkcykgewogICAgICAgICAgICBpbnQgdGVtcFsyNl0gPSB7MH07CiAgICAgICAgICAgIGZvcihjaGFyIGMgOiB3b3JkKSB0ZW1wW2MgLSAnYSddKys7CiAgICAgICAgICAgIGZvcihpbnQgaSA9IDA7IGkgPCAyNjsgaSsrKQogICAgICAgICAgICAgICAgZnJlcVtpXSA9IG1pbihmcmVxW2ldLCB0ZW1wW2ldKTsKICAgICAgICB9CgogICAgICAgIHZlY3RvcjxzdHJpbmc+IHJlc3VsdDsKICAgICAgICBmb3IoaW50IGkgPSAwOyBpIDwgMjY7IGkrKykgewogICAgICAgICAgICBmb3IoaW50IGogPSAwOyBqIDwgZnJlcVtpXTsgaisrKQogICAgICAgICAgICAgICAgcmVzdWx0LnB1c2hfYmFjayhzdHJpbmcoMSwgJ2EnICsgaSkpOwogICAgICAgIH0KCiAgICAgICAgcmV0dXJuIHJlc3VsdDsKICAgIH0KfTsKCmludCBtYWluKCkgewogICAgU29sdXRpb24gc29sOwogICAgdmVjdG9yPHN0cmluZz4gd29yZHMgPSB7ImJlbGxhIiwgImxhYmVsIiwgInJvbGxlciJ9OwogICAgdmVjdG9yPHN0cmluZz4gcmVzID0gc29sLmNvbW1vbkNoYXJzKHdvcmRzKTsKCiAgICBmb3Ioc3RyaW5nIHMgOiByZXMpIGNvdXQgPDwgcyA8PCAiICI7CiAgICBjb3V0IDw8IGVuZGw7CgogICAgcmV0dXJuIDA7Cn0K