专栏首页木又AI帮【leetcode刷题】T67-字母异位词分组

【leetcode刷题】T67-字母异位词分组

【题目】

给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。

示例:

输入: ["eat", "tea", "tan", "ate", "nat", "bat"],
输出:
[
  ["ate","eat","tea"],
  ["nat","tan"],
  ["bat"]
]

说明:

  • 所有输入均为小写字母。
  • 不考虑答案输出的顺序。

【思路】

字母异位词,说明字符串中所有的字母及其个数完全一样。

可以使用字典,字典的key为排序后的字符串,value为原始字符串的数组。

遍历每个字符串,得到其排序后的字符串,将其加入到字典中,最后返回字典的所有value。

【代码】

python版本

class Solution(object):
    def groupAnagrams(self, strs):
        """
        :type strs: List[str]
        :rtype: List[List[str]]
        """
        d = {}
        for s in strs:
            s_sort = ''.join(sorted(s))
            if s_sort not in d:
                d[s_sort] = []
            d[s_sort].append(s)
        return list(d.values())

C++版本

class Solution {
public:
    vector<vector<string>> groupAnagrams(vector<string>& strs) {
        vector<vector<string>> res;
        map<string, vector<string>> d;
        for(auto str: strs){
            string tmp = str;
            sort(tmp.begin(), tmp.end());
            d[tmp].push_back(str);
        }
        map<string, vector<string>>::iterator it;
        for(it=d.begin(); it!=d.end(); it++){
            res.push_back(it->second);
        }
        return res;
    }
};

本文分享自微信公众号 - 木又AI帮(gh_eaa31cab4b91),作者:木又

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-21

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 【leetcode刷题】T90-转换成小写字母

    实现函数 ToLowerCase(),该函数接收一个字符串参数 str,并将该字符串中的大写字母转换成小写字母,之后返回新的字符串。

    木又AI帮
  • 打卡群刷题总结0811——从中序与后序遍历序列构造二叉树

    链接:https://leetcode-cn.com/problems/construct-binary-tree-from-inorder-and-posto...

    木又AI帮
  • 【leetcode刷题】T56-重复的DNA序列

    所有 DNA 由一系列缩写为 A,C,G 和 T 的核苷酸组成,例如:“ACGAATTCCG”。在研究 DNA 时,识别 DNA 中的重复序列有时会对研究非常有...

    木又AI帮
  • Python标准库笔记(1) — string模块

    目录[-] String模块包含大量实用常量和类,以及一些过时的遗留功能,并还可用作字符串操作。 1. 常用方法 常用方法 描述 str.c...

    jhao104
  • 快速学习-Python字符串(String)

    Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。

    cwl_java
  • Neo4j-2.1 字符串函数

    悠扬前奏
  • 川普的逆袭,是给大数据的一记耳光!

    昨日,美国总统选举落下帷幕,共和党总统候选人唐纳德·特朗普在这场权利的游戏中获得胜利,成功当选美国第58届总统。这次美国总统竞选被德国《商报》称作“第一次数字化...

    钱塘数据
  • 702. 连接两个字符串中的不同字符

    连接两个字符串中的不同字符。 给出两个字符串, 你需要修改第一个字符串,将所有与第二个字符串中相同的字符删除, 并且第二个字符串中不同的字符与第一个字符串的不...

    和蔼的zhxing
  • Appium1.9.1 之 Desire

    Desired Capabilities本质上是以key value字典的方式存放,客户端将这些键值对发给服务端,告诉服务端我们想要怎么测试。

    py3study
  • python中字符串转义与拼接

    转义符为 \ 后面跟上单引号或者双引号,可以使得结果直接输出单引号或者双引号,这是Python编译器特定的解释,也被广泛应用在其它各类语言中。

    刘金玉编程

扫码关注云+社区

领取腾讯云代金券