LeetCode 49. 字母异位词分组(C++)

题目描述:

给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。

示例:

输入: ["eat", "tea", "tan", "ate", "nat", "bat"],
输出:
[
  ["ate","eat","tea"],
  ["nat","tan"],
  ["bat"]
]

解题思路:

用一个map存储,内部进行排序的各个单词为Key,以字符串向量为value ,存储各个字符数量相同的字符串:

代码实现:

class Solution {
public:
    vector> groupAnagrams(vector& strs) {
        map>   anagram;//内部进行排序的各个单词为Key,以字符串向量为value ,存储各个字符数量相同的字符串
        vector>  result; //存储最终结果
        for(int i=0;i  item;
                anagram[str]=item;//以排序后的strs[i]作为key
                
            }
            anagram[str].push_back(strs[i]);//在对应的字符串向量中push结果
        }
        map>::iterator  it;
        for(it=anagram.begin();it!=anagram.end();it++){
            result.push_back((*it).second);
        }
        return result;
        
        
    }
};

运行结果:

LeetCode 49. 字母异位词分组(C++)_第1张图片

你可能感兴趣的:(LeetCode 49. 字母异位词分组(C++))