先对每个字符串排序,随后用Map<String,List<String>>存储<排序后字符串,字符串链表>
public class Leetcode10_02 {
public List<List<String>> groupAnagrams(String[] strs) {
String[] string = new String[strs.length];
HashMap<String, List<String>> map = new HashMap<>();
for(int i = 0;i < strs.length;i ++){
string[i] = strs[i];
char[] temp = strs[i].toCharArray();
Arrays.sort(temp);
strs[i] = String.valueOf(temp);
}
for(int i = 0;i < strs.length;i ++){
if(map.get(strs[i]) == null){
ArrayList<String> list = new ArrayList<>();
list.add(string[i]);
map.put(strs[i], list);
} else {
List<String> list = map.get(strs[i]);
list.add(string[i]);
map.put(strs[i], list);
}
}
List<List<String>> ans = new ArrayList<>();
for (List value : map.values()) {
ans.add(value);
//System.out.println("key = " + value);
}
return ans;
}
}