zoukankan      html  css  js  c++  java
  • leetcode 49. 字母异位词分组

    使用sort+map的方法:

    class Solution {
    public:
        vector<vector<string>> groupAnagrams(vector<string>& strs) {
            vector<vector<string> > res;
            vector<string>cpy=strs;
            map<string,int> mp;int k=0;
            for(int i=0;i<strs.size();i++){
                    sort(strs[i].begin(),strs[i].end());
                    if(!mp.count(strs[i])){
                        mp[strs[i]]=k++;//cout<<mp[strs[i]]<<endl;
                    }
                           
            }
            for(int i=0;i<strs.size();i++){
                if(res.size()<k)
                    res.push_back({});
                res[mp[strs[i]]].push_back(cpy[i]);
            }
            return res;
        }
    };

    哈希表方法:将每个单词映射到0~26个字母,并且对每个字母的数目做出表示;

    class Solution {
    public:
        vector<vector<string>> groupAnagrams(vector<string>& strs) {
            vector<vector<string> > res;
            unordered_map<string,string> mp;int k=0;
            unordered_map<string,int> mp2;
            for(int i=0;i<strs.size();i++){
                string ex="00000000000000000000000000";
                for(int j=0;j<strs[i].size();j++){
                    ex[strs[i][j]-'a']+=1;
                }
                //cout<<ex<<endl;
                mp[strs[i]]=ex;
                if(!mp2.count(ex))
                    mp2[ex]=k++;
            }
            for(int i=0;i<strs.size();i++){
                if(res.size()<k)
                    res.push_back({});
                res[mp2[mp[strs[i]]]].push_back(strs[i]);
            }
            return res;
        }
    };
  • 相关阅读:
    ES5 05 Function扩展
    ES5 04 Array扩展
    ES5 03 Object扩展
    ES5 02 JSON对象
    ES5 01 严格模式
    Oracle 数据库复制
    PB函数大全
    Handle( ) //得到PB窗口型对象的句柄
    PB赋值粘贴 多个DW进行update
    pb 11 数据窗口空白,预览pb崩溃解决方案
  • 原文地址:https://www.cnblogs.com/joelwang/p/10686249.html
Copyright © 2011-2022 走看看