zoukankan      html  css  js  c++  java
  • 同构词分类

    给定string数组把所有的同构词都聚在一起:

    例:

    ["eat", "tea", "tan", "ate", "nat", "bat"]

    返回:

    bat
    eat tea ate
    tan nat

    说明:如果两个词所组成的字母完全相同,只是字母的位置不同,就称之为同构词。

    思路:

    遍历整个str数组,把他们排序的结果当作哈希数组的key,value值就是未排序的原始string,最后再用二维数组的string来接收,返回即可。

    vector<vector<string>> getSameWord(vector<string>& str)
    {
        vector<vector<string>> ans;
        unordered_map<string, vector<string>> hash;
        for (auto s : str)
        {
            string key = s;
            sort(key.begin(), key.end());
            hash[key].push_back(s);
        }
    
        for (auto iter : hash)
        {
            ans.push_back(iter.second);
        }
        return ans;
    }
  • 相关阅读:
    友链大集合
    雅礼学习10.7
    雅礼学习10.6
    雅礼学习10.5
    雅礼学习10.4
    雅礼学习10.3
    雅礼学习10.4
    雅礼学习10.2
    雅礼学习10.1
    如何让SublimeText3更好用
  • 原文地址:https://www.cnblogs.com/wanghao-boke/p/13854410.html
Copyright © 2011-2022 走看看