49. Group Anagrams

来源:互联网 发布:21天学通c语言pdf下载 编辑:程序博客网 时间:2024/05/02 02:42

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”],
[“bat”]
]

代码

public class Solution {    public List<List<String>> groupAnagrams(String[] strs) {        if(strs == null || strs.length == 0) return new ArrayList<List<String>>();        Map<String , List<String>> map = new HashMap<String, List<String>>(); //注意map里放的两个是啥,一个是字符串,另一个是链表用来输出        Arrays.sort(strs);        for(String s : strs){            char[] ca = s.toCharArray(); //先将字符串数组里的每个字符放入字符数组里            Arrays.sort(ca);//在进行排序            String keystr = String.valueOf(ca); //然后再放入到定义的字符串中            if (!map.containsKey(keystr)) map.put(keystr, new ArrayList<String>());            map.get(keystr).add(s);        }        return new ArrayList<List<String>>(map.values());    }}
0 0