题目的需求:将
For example, given: ["eat", "tea", "tan", "ate", "nat", "bat"]
,
Return:[["ate", "eat","tea"], ["nat","tan"],["bat"]]
思路:首先将每个字符串按照asc码进行排序,然后eat 就成了aet,以aet为key, eat,tea,构成的list为value进行返回即可。
publicstatic
List<List<String>> groupAnagrams(String[]
strs) {
List<List<String>>
listb=new
LinkedList<List<String>>();
Map<String,List<String>>
map=new
HashMap<String,List<String>>();
for
(int
i
= 0;
i
<
strs.length;
i++) {
char[]
charArray
=
strs[i].toCharArray();
Arrays.sort(charArray);
String
string
=
new
String(charArray);
System.out.println(string);
if(map.containsKey(string)){
List<String>
list
=
map.get(string);
list.add(strs[i]);
}else{
LinkedList<String>
linkedList
=
new
LinkedList<String>();
linkedList.add(strs[i]);
map.put(string,linkedList);
}
}
for
(String
key:map.keySet())
{
listb.add(map.get(key));
}
return
listb;
}