给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。
输入: ["eat", "tea", "tan", "ate", "nat", "bat"]
输出:
[
["ate","eat","tea"],
["nat","tan"],
["bat"]
]
c plus
- 排序法
class Solution {
public:
vector> groupAnagrams(vector & strs) {
unordered_map> mp;
for (string s : strs) {
string tmp = s;
sort(tmp.begin(), tmp.end());
mp[tmp].push_back(s);
}
vector> ret;
for (auto s : mp) {
ret.push_back(s.second);
}
return ret;
}
}; ```
`
%E7%BB%99%E5%AE%9A%E4%B8%80%E4%B8%AA%E5%AD%97%E7%AC%A6%E4%B8%B2%E6%95%B0%E7%BB%84%EF%BC%8C%E5%B0%86%E5%AD%97%E6%AF%8D%E5%BC%82%E4%BD%8D%E8%AF%8D%E7%BB%84%E5%90%88%E5%9C%A8%E4%B8%80%E8%B5%B7%E3%80%82%E5%AD%97%E6%AF%8D%E5%BC%82%E4%BD%8D%E8%AF%8D%E6%8C%87%E5%AD%97%E6%AF%8D%E7%9B%B8%E5%90%8C%EF%BC%8C%E4%BD%86%E6%8E%92%E5%88%97%E4%B8%8D%E5%90%8C%E7%9A%84%E5%AD%97%E7%AC%A6%E4%B8%B2%E3%80%82%0A%60%60%60%0A%E8%BE%93%E5%85%A5%3A%20%5B%22eat%22%2C%20%22tea%22%2C%20%22tan%22%2C%20%22ate%22%2C%20%22nat%22%2C%20%22bat%22%5D%0A%E8%BE%93%E5%87%BA%3A%0A%5B%0A%20%20%5B%22ate%22%2C%22eat%22%2C%22tea%22%5D%2C%0A%20%20%5B%22nat%22%2C%22tan%22%5D%2C%0A%20%20%5B%22bat%22%5D%0A%5D%0A%60%60%60%0A%0A%23%23%23%20c%20plus%0A%0A%0A%20%E6%8E%92%E5%BA%8F%E6%B3%95%0A%20%60%60%60c%0A%2F%2F%E6%8A%8A%E6%AF%8F%E4%B8%AA%E5%8D%95%E8%AF%8D%E6%8E%92%E5%BA%8F%EF%BC%8C%E7%84%B6%E5%90%8E%E5%B0%86%E6%8E%92%E5%BA%8F%E5%90%8E%E5%8D%95%E8%AF%8D%E5%BD%93%E6%88%90KEY%E6%94%BE%E5%85%A5%E5%93%88%E5%B8%8C%E4%B8%AD%EF%BC%8C%20%E5%93%88%E5%B8%8C%E7%A2%B0%E6%92%9E%E7%9A%84%E5%8D%B3%E6%98%AF%E7%BB%93%E6%9E%9C%0Aclass%20Solution%20%7B%0Apublic%3A%0A%20%20%20%20vector%3Cvector%3Cstring%3E%3E%20groupAnagrams(vector%3Cstring%3E%26%20strs)%20%7B%0A%20%20%20%20%20%20%20%20unordered_map%3Cstring%2C%20vector%3Cstring%3E%3E%20mp%3B%0A%20%20%20%20%20%20%20%20for%20(string%20s%20%3A%20strs)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20string%20tmp%20%3D%20s%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20sort(tmp.begin()%2C%20tmp.end())%3B%0A%20%20%20%20%20%20%20%20%20%20%20%20mp%5Btmp%5D.push_back(s)%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20vector%3Cvector%3Cstring%3E%3E%20ret%3B%0A%20%20%20%20%20%20%20%20for%20(auto%20s%20%3A%20mp)%20%7B%0A%20%20%20%20%20%20%20%20%20%20%20%20ret.push_back(s.second)%3B%0A%20%20%20%20%20%20%20%20%7D%0A%20%20%20%20%20%20%20%20return%20ret%3B%0A%20%20%20%20%7D%0A%7D%3B%0A%60%60%60%0A%0A%0A*`