49. Group Anagrams(Medium)(重做)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/NCUscienceZ/article/details/86998336

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 order of your output does not matter.

这个题语法非常不熟练,重做。

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
        Map<String, List<String>> map = new HashMap<>();
        
        for (String s : strs){
            char[] arr = s.toCharArray();
            Arrays.sort(arr);
            String k = String.valueOf(arr);
            
            if (map.containsKey(k)){
                map.get(k).add(s);
            }else{
                map.put(k, new ArrayList<String>());
                map.get(k).add(s);
            }
        }
        return new ArrayList<List<String>>(map.values());
    }
}

猜你喜欢

转载自blog.csdn.net/NCUscienceZ/article/details/86998336