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

    地址  https://leetcode-cn.com/problems/group-anagrams/

    给定一个字符串数组,将字母异位词组合在一起。
    字母异位词指字母相同,但排列不同的字符串。
    
    示例:
    
    输入: ["eat", "tea", "tan", "ate", "nat", "bat"]
    输出:
    [
      ["ate","eat","tea"],
      ["nat","tan"],
      ["bat"]
    ]
    说明:
    
    所有输入均为小写字母。
    不考虑答案输出的顺序。

    算法1
    单词字母相同但是位置不同 那么就考虑使用字母的哈希来表示这个单词
    这里构造一个26位长的字符串 若有字母a 则索引0做一次标记 若有字母z 则索引25做一次标记
    最后在使用一个26位长的字符串为关键字的哈希表吧相同的字母记录在一起即可

    class Solution {
    public:
        unordered_map<string ,vector<string>> mm;
        vector<vector<string>> groupAnagrams(vector<string>& strs) {
            for (const auto& e : strs) {
                string v(26, '0');
                for (const auto&ee : e) {
                    int idx = ee - 'a';
                    v[idx]++;
                }
                mm[v].push_back(e);
            }
            vector<vector<string>> ans;
            //归类完毕
            for (auto& e: mm) {
                ans.push_back(e.second);
            }
    
            return ans;
        }
    };
    作 者: itdef
    欢迎转帖 请保持文本完整并注明出处
    技术博客 http://www.cnblogs.com/itdef/
    B站算法视频题解
    https://space.bilibili.com/18508846
    qq 151435887
    gitee https://gitee.com/def/
    欢迎c c++ 算法爱好者 windows驱动爱好者 服务器程序员沟通交流
    如果觉得不错,欢迎点赞,你的鼓励就是我的动力
    阿里打赏 微信打赏
  • 相关阅读:
    2.2 建立示例数据库
    2.1.4 基本概念
    8. 在NOARCHIVELOG模式下用户管理的备份与恢复
    2.1.2 系统全局区
    考过042
    ORA1157错误解决手册(转)
    4. 用户管理的备份
    Kohana之LOG使用
    jq插件之easing
    Svn服务器之必须提交更改日志篇
  • 原文地址:https://www.cnblogs.com/itdef/p/14068237.html
Copyright © 2011-2022 走看看