资讯专栏INFORMATION COLUMN

leetcode 49 Group Anagrams

陈伟 / 770人阅读

摘要:不需要关注输出的顺序,所有的输入都是小写。的就是经过排序后的字符数组所对应的字符串。因为不需要考虑输出的顺序,所以遍历完直接输出中的所有值即可。解法边界情况判断如果存在相同组成的元素

题目详情
Given an array of strings, group anagrams together.
题目要求输入一个字符串数组,我们要将由同样字母组成的字符串整理到一起,然后以如下例子中的格式输出。
不需要关注输出的顺序,所有的输入都是小写。

Example:
Input: ["eat", "tea", "tan", "ate", "nat", "bat"],
Output:
[
["ate","eat","tea"],
["nat","tan"],
["bat"]
]

思路

本题的思路还是比较容易想的,一个关键点在于如何判断两个字符串是相同的字符组成的呢?这里我们先将一个字符串通过toCharArray()方法转为字符数组,再通过Arrays.sort()对拆解后的字符数组重新排序。这样的话,如果两个字符串的组成字符相同,那他们拆解后的字符数组经过排序也一定是相同的。

我们这里用Map来存储,一种元素组成所对应的所有字符串。

map的key就是经过排序后的字符数组所对应的字符串。

因为不需要考虑输出list的顺序,所以遍历完直接输出map中的所有value值即可。

解法
    public List> groupAnagrams(String[] strs) {
        //边界情况判断
        if(strs.length==0)return new ArrayList();
        HashMap> res = new HashMap>();

        for(String s : strs){
            char[] temp = s.toCharArray();
            Arrays.sort(temp);
            String key = String.valueOf(temp);
            //如果存在相同组成的元素
            if(!res.containsKey(key)){
                res.put(key, new ArrayList());
            }
            res.get(key).add(s);
        }
            
        return new ArrayList(res.values());
    }    

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/71599.html

相关文章

  • leetcode49 Group Anagrams

    摘要:同时使用方法将数组转化为并利用的直接比较两个字符串是否相等。通过这种方法效率值提高了不少。 题目要求 Given an array of strings, group anagrams together. For example, given: [eat, tea, tan, ate, nat, bat], Return: [ [ate, eat,tea], [nat,t...

    sunsmell 评论0 收藏0
  • [Leetcode] Group Anagrams 变形词

    摘要:我们将每个词排序后,根据这个键值,找到哈希表中相应的列表,并添加进去。 Group Anagrams 最新更新请见:https://yanjia.me/zh/2019/01/... Given an array of strings, group anagrams together. For example, given: [eat, tea, tan, ate, nat, bat...

    Lin_YT 评论0 收藏0
  • 49. Group Anagrams and 249. Group Shifted Strings

    摘要:也就是同构异形体。特点是有相同数量的组成。素数可以素数表。这里使用而不是可以避免最后从导出结果的时间。修改了和得到的方法,其他都一样。但是会有解不了的地方。还有个特殊情况就是不是一组。如果数字编码出来都是如果用编码,出现的就是。 49 Group Anagrams Given an array of strings, group anagrams together. For examp...

    cppowboy 评论0 收藏0
  • 49. Group Anagrams

    摘要:题目解答遇到这种要求一个的集合,首先想到的就是。那么被的作为把有同样的以的形式放到里,然后输出。 题目:Given an array of strings, group anagrams together. For example, given: [eat, tea, tan, ate, nat, bat], Return: [ [ate, eat,tea], [nat,tan],...

    wangtdgoodluck 评论0 收藏0
  • [LeetCode] Group Anagram

    Problem Given an array of strings, group anagrams together. Example: Input: [eat, tea, tan, ate, nat, bat], Output: [ [ate,eat,tea], [nat,tan], [bat] ] Note: All inputs will be in lowercase.The ...

    kid143 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<