2 字母异位词分组

2024-01-08 12:47:00

给你一个字符串数组,请你将?字母异位词?组合在一起。可以按任意顺序返回结果列表。

字母异位词?是由重新排列源单词的所有字母得到的一个新单词。

示例 1:

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

示例 2:

输入: strs = [""]
输出: [[""]]

示例 3:

输入: strs = ["a"]
输出: [["a"]]

int main()
{
   

    unordered_map<string, vector<string>> mp;//容器 unordered_map;创建一个key和value的值

    vector<string> strs= { "Hello", "world", "ydb" ,"bdy"};
    for (string& str : strs) {
        string key = str;
        sort(key.begin(), key.end());//使用 begin() 和 end() 函数获取其指向第一个和最后一个字符的迭代器
        mp[key].emplace_back(str);
    }
    vector<vector<string>> ans;
    for (auto it = mp.begin(); it != mp.end(); ++it) {
        ans.emplace_back(it->second);
    }
    
    for (const auto& group : ans) {
        for (const string& str : group) {
            cout << str << " ";
        }
        cout << endl;
    }
    return 0;
}

文章来源:https://blog.csdn.net/u012545581/article/details/135453885
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。