一、题目说明
题目是49. Group Anagrams,给定一列字符串,求同源词(包含相同字母的此)的集合。题目难度是Medium。
二、我的做法
题目简单,就不多说,直接上代码:
class Solution{
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
vector<vector<string>> res;
if(strs.size()<1) return res;
unordered_map<string,vector<string>> ump;
for(auto str:strs){
string s = str;
sort(s.begin(),s.end());
ump[s].push_back(str);
}
for ( auto it = ump.begin(); it != ump.end(); ++it ){
res.push_back(it->second);
}
return res;
}
};
性能如下:
Runtime: 32 ms, faster than 97.75% of C++ online submissions for Group Anagrams.
Memory Usage: 19.1 MB, less than 73.13% of C++ online submissions for Group Anagrams.
三、优化措施
主要是用了unordered_map,也用到了sort排序,当然用map也可以。
晕了,不做优化了。