题解 | #牛棚品种分类#

牛棚品种分类

https://www.nowcoder.com/practice/0b6068f804b9426aa737ea8606e8d5c3

考察的知识点:字符串;

解答方法分析:

  1. 创建一个无序哈希表 hashMap,用于存储排序后的字符串作为键和对应的原始字符串作为值。这里使用 unordered_map 容器。
  2. 遍历输入的字符串数组 strs,对每个字符串进行如下处理:将当前字符串 x 复制给新的变量 s。对 s 进行排序操作,将其变成有序字符串。判断有序字符串 s 是否存在于哈希表 hashMap 中,若不存在,则将 s 作为键,x 作为值加入哈希表;若存在,则将 x 添加到对应值的末尾,并以逗号分隔。
  3. 创建一个字符串数组 result,用于存储最终的分组结果。
  4. 遍历哈希表 hashMap 的键值对,将每个值(即原始字符串)依次添加到 result 数组中。
  5. 对 result 数组进行排序,使得结果按字典序排列。
  6. 返回排序后的 result 数组作为函数的输出结果。

所用编程语言:C++;

完整编程代码:↓

class Solution {
  public:
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     *
     * @param strs string字符串vector
     * @return string字符串vector
     */
    vector<string> groupAnagrams(vector<string>& strs) {
        unordered_map<string, string> hashMap;
        for (auto x : strs) {
            string s = x;
            sort(s.begin(), s.end());
            if (hashMap.find(s) == hashMap.end()) {
                hashMap[s] = x;
            } else {
                hashMap[s] += "," + x;
            }
        }
        vector<string> result;
        for (auto x : hashMap) {
            result.push_back(x.second);
        }
        sort(result.begin(), result.end());
        return result;
    }
};

全部评论

相关推荐

06-25 09:33
厦门大学 Java
程序员饺子:现在日常估计没啥hc了,等到八月多估计就慢慢有了。双九✌🏻不用焦虑的
投递快手等公司7个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务