• [LeetCode No.49] 字母异味词分组


    题目

    题解

    根据题目可以看到结果返回的是一个List嵌套List,又是要求“字母相同,位置不同即可为一组”
    根据题意可以利用Map的key的唯一性,将字符串转为字符数组并进行排序。加入Map
    排序后的字符串数再转为字符串,若其存在于key,则把key对应的List取出,并把初始字符串添加进List。然后把List放回map
    若不存在,则新建一个List,将初始字符串添加进List,然后把List放回map

    代码

    public class Solution {
    public static List<List<String>> groupAnagrams(String[] strs) {
            Map<String,ArrayList<String>> ans = new HashMap<String, ArrayList<String>>();
    
            for (String str:strs){
                char[] c_str = str.toCharArray();
                Arrays.sort(c_str);
                String key = new String(c_str);
                System.out.println(key);
                ArrayList<String> temp = ans.getOrDefault(key,new ArrayList<>());
                temp.add(str);
                ans.put(key,temp);
            }
    
            return new ArrayList<List<String>>(ans.values());
        }
    }
    
  • 相关阅读:
    面向对象编程-介绍(python3入门)
    课堂作业03
    软件工程个人作业04
    团队介绍
    学习进度条
    课堂作业02
    学习进度条
    软件工程个人作业03
    课堂作业01
    软件工程个人作业02
  • 原文地址:https://www.cnblogs.com/Mr-BING/p/14136013.html
Copyright © 2020-2023  润新知