又忘记了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; } }