这道题对我来说比较难:
1.首先题目要求输出的结果,应该用什么形式的数据结构来存储呢
2.涉及到map,collection,sort( )等函数,或者其他的一堆东西,几乎一无所知。
copy大神代码如下:
public class Solution {
//返回值是以链表作为节点的链表。
public List<List<String>> groupAnagrams(String[] strs) {
Map<String, List<String>> map = new HashMap<String, List<String>>();
for(String str : strs){
// 将单词按字母排序
char[] carr = str.toCharArray();
Arrays.sort(carr);按某种作者要求的顺序来排序!
String key = new String(carr);
//得到的是键的存放位置
List<String> list = map.get(key);返回值到底是什么,不太理解。
if(list == null){
list = new ArrayList<String>();
}
list.add(str);
map.put(key, list);
}
List<List<String>> res = new ArrayList<List<String>>();
// 将列表按单词排序
for(String key : map.keySet()){
List<String> curr = map.get(key);
Collections.sort(curr);
res.add(curr);
}
return res;
}
}
时间: 2024-10-12 21:08:19