- 题目:给定一个字符串数组,将字符相同的字符串放入同一个List里中
- 难度:Medium
- 思路:借助map来存储字符相同的字符串
- 代码:
public class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
List<List<String>> result = new ArrayList<List<String>>();
if(strs == null || strs.length == 0){
return result;
}
HashMap<String,ArrayList<String>> map = new HashMap<>();
int len = strs.length;
for(int i = 0; i < len; i++){
char[] temp = strs[i].toCharArray();
Arrays.sort(temp);
if(map.containsKey(String.valueOf(temp))){
map.get(String.valueOf(temp)).add(strs[i]);
}else{
ArrayList<String> list = new ArrayList<>();
list.add(strs[i]);
map.put(String.valueOf(temp),list);
}
}
for(ArrayList<String> list : map.values()){
result.add(list);
}
return result;
}
}