您的位置:首页 > 其它

Group Anagrams(leetcode)

2018-01-06 11:51 106 查看
Group Anagrams(leetcode)

Given an array of strings, group anagrams together.
For example, given: 
["eat", "tea", "tan", "ate", "nat", "bat"]


Return:
[
["ate", "eat","tea"],
["nat","tan"],
["bat"]
]


Note: All inputs will be in lower-case.

代码:
class Solution {
public:
vector<vector<string> > groupAnagrams(vector<string>& strs) {
vector<string>o_strs = strs;
for (int i = 0; i < o_strs.size(); ++i) {
sort(o_strs[i].begin(), o_strs[i].end());
}
unordered_map<string, vector<int> > u_map;
for (int i = 0; i < o_strs.size(); ++i) {
u_map[o_strs[i]].push_back(i);
}
vector<vector<string> > solution;
for (unordered_map<string, vector<int> >::iterator it = u_map.begin(); it != u_map.end(); it++) {
vector<string> temp;
for (int i = 0; i < (*it).second.size(); i++) {
temp.push_back(strs[(it->second)[i]]);
}
solution.push_back(temp);
}
return solution;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: