又忘记了lc没有hashtable 要用hashmap 几个常用函数还是不太记得,尤其是最后一个循环里面的for each方法 entryset 还有就是list可以addAll
出错的是最后加入答案的时候没有判断对于一个key 它的value里面有几个string 只有一个的话就没有和它是anagram的
这个题还有一点就是怎样sort一个string 要先变成char 数组 再sort
public class Solution {
public List<String> anagrams(String[] strs) {
List<String> res = new ArrayList<String>();
if ( strs == null || strs.length == 0)
return res;
HashMap <String, List<String>> table = new HashMap <String,List<String>>();
for ( int i = 0; i < strs.length; i ++ ){
char[] sorted = strs[i].toCharArray();
Arrays.sort( sorted );
String s = new String(sorted);
if ( table.containsKey(s) ){
table.get(s).add(strs[i]);
}
else{
List<String> list = new ArrayList<String>();
list.add(strs[i]);
table.put(s, list);
}
}
for(Map.Entry<String, List<String>> entry: table.entrySet()) {
List<String> value = entry.getValue();
if (value.size() > 1) {
res.addAll(value);
}
}
return res;
}
}