当前位置:   article > 正文

力扣hot100 49题字母异位词分组 打卡

力扣hot100 49题字母异位词分组 打卡

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。

 提示:

  • 1 <= strs.length <= 104
  • 0 <= strs[i].length <= 100
  • strs[i] 仅包含小写字母
  • 思路分析:如何是否属于字母异位词的办法就是将String数组中的所有元素进行排序,然后一样的话则说明是字母异位词。我们可以先对String数组中的所有元素进行排序,然后将排完序之后的String作为key,value位一个List,用来添加key相同的String,最后只需要遍历map把所有元素添加到resultList中即可,代码实现和提交截图如下图。
    1. class Solution {
    2. public static List<List<String>> groupAnagrams(String[] strs) {
    3. HashMap<String,List<String>> map = new HashMap();
    4. int len = strs.length;
    5. for(int i = 0 ; i < len ; i++){
    6. String key = strs[i];
    7. char[] ckey = key.toCharArray();
    8. Arrays.sort(ckey);
    9. String newKey = String.valueOf(ckey);
    10. List<String> list = map.getOrDefault(newKey, new ArrayList<String>());
    11. list.add(strs[i]);
    12. map.put(newKey,list);
    13. }
    14. List<List<String>> res = new ArrayList<>();
    15. Set<Map.Entry<String, List<String>>> entries = map.entrySet();
    16. Iterator<Map.Entry<String, List<String>>> iterator = entries.iterator();
    17. while(iterator.hasNext()){
    18. Map.Entry<String, List<String>> next = iterator.next();
    19. res.add(next.getValue());
    20. }
    21. return res;
    22. }
    23. }

     总结:利用每个String排序后相同的办法来解决字母异位词,借用map存储进行分类,学到了。

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

闽ICP备14008679号