已知一组字符串,将所有anagram(由颠倒字母顺序而构成的字)放到一起输出。
例如:[“eat”,“tea”,“tan”,“ate”,“nat”,“bat”]
返回:[[“ate”,“eat”,“tea”],[“nat”,“tan”],“bat”]
算法1:
#include<vector>
#include<map>
#include<string>
#include<algorithm>
class Solution
{
public:
Solution() {
}
~Solution() {
}
std::vector<std::vector<std::string>> groupAnagrams(std::vector<std::string>& strs)
{
std::vector<std::vector<std::string>> result;
std::string str;
std::map<std::string, std::vector<std::string>> anagram;
for (int i = 0; i < strs.size(); i++)
{
str = strs[i];
std::sort(str.begin(), str.end());
if (anagram.find(str)==anagram