美文网首页
[Leetcode]49. Group Anagrams

[Leetcode]49. Group Anagrams

作者: 木易yr | 来源:发表于2019-08-17 18:37 被阅读0次

    49. Group Anagrams

    Given an array of strings, group anagrams together.
    Example:
    Input: ["eat", "tea", "tan", "ate", "nat", "bat"],
    Output:
    [
    ["ate","eat","tea"],
    ["nat","tan"],
    ["bat"]
    ]
    Note:
    All inputs will be in lowercase.
    The order of your output does not matter.

    字符串题目
    题意:字母异位词,单词组成的字母相同,顺序不同

    思路:
    在原始信息和哈希映射使用的实际键之间建立映射关系。 在这里体现为,将单词字母按字母表顺序排列,若排列结果相同,则为字母异位词

    class Solution {
    public:
        vector<vector<string>> groupAnagrams(vector<string>& strs) {
            unordered_map<string,vector<string>>hash;
            for(auto s:strs)
            {
                string temp=s;
                sort(temp.begin(),temp.end());
                hash[temp].push_back(s);
            }
            int len=hash.size();
             vector<vector<string> >ans(len);
            int index=0;
            for(auto i:hash)
            {
                ans[index++]=i.second;
            }
            return ans;
        }
    };
    

    ps:
    对string类型数据进行字符串内排序
    代码:

        string str;
        while(cin>>str){
            int len = str.length();
            sort(str.begin(), str.end());
            cout<<str<<endl;
        }
    

    输入:dcba
    输出:abcd

    相关文章

      网友评论

          本文标题:[Leetcode]49. Group Anagrams

          本文链接:https://www.haomeiwen.com/subject/bopksctx.html