class Solution {
public:
vector<string> anagrams(vector<string> &strs) {
vector<string> results;
int size = strs.size();
if (size == 0) {
return results;
}
unordered_map<string, int> map;
for (int i = 0; i < size; i++) {
string elem = strs[i];
sort(elem.begin(), elem.end());
if (map.find(elem) == map.end()) {
map.insert({elem, 0});
}
map[elem]++;
}
for (int j = 0; j < size; j++) {
string elem1 = strs[j];
sort(elem1.begin(), elem1.end());
if (map.find(elem1) != map.end() && map[elem1] > 1) {
results.push_back(strs[j]);
}
}
return results;
}
};