package leetcode;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
import java.util.List;
public class demo_49 {
public List<List<String>> groupAnagrams(String[] strs) {
List<List<String>> list=new ArrayList<List<String>>();
HashMap<String, List<String>> hm=new HashMap<String, List<String>>();
for(String s:strs) {
//对字符串进行排序,如果排序后的顺序一样则属于同一类
char[] ch=s.toCharArray();
Arrays.sort(ch);
String s1="";
for(char c:ch) {
s1=s1+c;
}
//如果是同一类则加入到相应的List集合中
if(hm.containsKey(s1)) {
hm.get(s1).add(s);
}
//如果hashmap没有同一类,则创建一个新的类
else {
hm.put(s1, new ArrayList<String>());
hm.get(s1).add(s);
}
}
//将value都放到list集合中
for(String s2:hm.keySet()) {
list.add(hm.get(s2));
}
System.out.println(list);
return list;
}
public static void main(String[] args) {
// TODO Auto-generated method stub
demo_49 d49=new demo_49();
String[] strs= {"eat", "tea", "tan", "ate", "nat", "bat"};
d49.groupAnagrams(strs);
}
}