当前位置:   article > 正文

Leetcode刷题java之49. 字母异位词分组_字母异位词idea代码

字母异位词idea代码

执行结果:

通过

显示详情

执行用时 :19 ms, 在所有 Java 提交中击败了33.84% 的用户

内存消耗 :42.2 MB, 在所有 Java 提交中击败了68.43%的用户

题目:

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

示例:

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

说明:


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

来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/group-anagrams
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。

思路:

用一个map来做一个哈希对应关系,一组内容的,它们排序之后一定是相同的(字符数组也是可以排序的),然后将排序相同的放到一个list当中,就可以了。

代码:

  1. class Solution {
  2. public List<List<String>> groupAnagrams(String[] strs) {
  3. if(strs.length==0)
  4. {
  5. return new ArrayList();
  6. }
  7. Map<String,List> map=new HashMap<>();
  8. for(String str:strs)
  9. {
  10. char[] ch=str.toCharArray();
  11. //第一个需要记住的地方就是字符数组也可以排序
  12. Arrays.sort(ch);
  13. String key=String.valueOf(ch);
  14. if(!map.containsKey(key))
  15. {
  16. map.put(key,new ArrayList<String>());
  17. }
  18. map.get(key).add(str);
  19. }
  20. //第二个就是map的values方法,获取所有的值
  21. return new ArrayList(map.values());
  22. }
  23. }

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/爱喝兽奶帝天荒/article/detail/938030
推荐阅读
相关标签
  

闽ICP备14008679号