49. Group Anagrams

来源:互联网 发布:python exe 编辑:程序博客网 时间:2024/05/02 01:07

Given an array of strings, group anagrams together.

For example, given: ["eat", "tea", "tan", "ate", "nat", "bat"]
Return:

[  ["ate", "eat","tea"],  ["nat","tan"],  ["bat"]]

Note:

  1. For the return value, each inner list's elements must follow the lexicographic order.
  2. All inputs will be in lower-case.

同一组的字符串排序以后一定是相同的。
排序后hash

public List<List<String>> groupAnagrams(String[] strs){List<List<String>> retlist=new ArrayList<>();int len=strs.length;if(len<1)return retlist;HashMap<String, ArrayList<String>> hashmap=new HashMap<>();for(String str:strs){char[] carr=str.toCharArray();Arrays.sort(carr);String key=new String(carr);ArrayList<String> arraylist=hashmap.get(key);if(arraylist==null)arraylist=new ArrayList<>();arraylist.add(str);hashmap.put(key, arraylist);}for(String key:hashmap.keySet()){ArrayList<String> alist=hashmap.get(key);Collections.sort(alist);retlist.add(alist);}return retlist;}


0 0
原创粉丝点击