49. 字母异位词分组
题目链接
HashMap
- 使用一个HashMap来存储分组,键是内部排序后的字符串,值是键的字母异位词组成的List
- 对一个字符串,先转换为char数组进行排序,再在HashMap中查找,若找到则加入List,未找到就创建新的List加入HashMap中
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
Map<String, List<String>> words = new HashMap<>();
for(String s : strs){
char[] charArray = s.toCharArray();
Arrays.sort(charArray);
String sortedStr = String.valueOf(charArray);
if(words.containsKey(sortedStr)){
List<String> list = words.get(sortedStr);
list.add(s);
} else {
List list = new ArrayList<String>();
list.add(s);
words.put(sortedStr, list);
}
}
return new ArrayList<List<String>>(words.values());
}
}