Given an array of strings, return all groups of strings that are anagrams.
Note: All inputs will be in lower-case.
class Solution {
public:
vector<string> anagrams(vector<string> &strs)
{
vector<string> ans;
int n = strs.size();
if(n == 0)
return ans;
map<string, int> m;
vector<bool> ok(n, false);
for(int i=0; i<n; i++)
{
string str = strs[i];
sort(str.begin(), str.end());
m[str]++;
}
for(int i=0; i<n; i++)
{
string str = strs[i];
sort(str.begin(), str.end());
if(m[str] > 1)
ans.push_back(strs[i]);
}
return ans;
}
};