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) {
if( strs.size() <= 1)
return vector< string>();
map< string, int> mapping;
vector< string> res;
for( int i = 0; i < strs.size(); ++i){
string tmp = strs[i];
sort( tmp.begin(), tmp.end());
if( mapping.count(tmp)){
if( mapping[tmp] >= 0){//下标小于零说明对应string已经放入res了
res.push_back(strs[mapping[tmp]]);
mapping[tmp] = -1;
}
res.push_back(strs[i]);
}
else
mapping[tmp] = i;
}
return res;
}
};