刷题49. Group Anagrams

一、题目说明

题目是49. Group Anagrams,给定一列字符串,求同源词(包含相同字母的此)的集合。题目难度是Medium。

二、我的做法

题目简单,就不多说,直接上代码:

class Solution{
public:
    vector<vector<string>> groupAnagrams(vector<string>& strs) {
        vector<vector<string>> res;
        
        if(strs.size()<1) return res;
        unordered_map<string,vector<string>> ump;

        for(auto str:strs){
            string s = str; 
            sort(s.begin(),s.end());
            ump[s].push_back(str);
        }

        for ( auto it = ump.begin(); it != ump.end(); ++it ){
            res.push_back(it->second);
        }
        
        return res;
    }
};

性能如下:

Runtime: 32 ms, faster than 97.75% of C++ online submissions for Group Anagrams.
Memory Usage: 19.1 MB, less than 73.13% of C++ online submissions for Group Anagrams.

三、优化措施

主要是用了unordered_map,也用到了sort排序,当然用map也可以。

晕了,不做优化了。

猜你喜欢

转载自www.cnblogs.com/siweihz/p/12245560.html