标签:
ref http://www.cnblogs.com/springfor/p/3874667.html
高亮处"如果一个sorted word是在HashMap里面存在过的,说明这个词肯定是个变形词,除了把这个词加入到返回结果中,还需要把之前第一个存进HashMap里面的value存入result中。"
public ArrayList<String> anagrams(String[] strs) { // 有一个关键点就是遇到第一个变形词的处理方式 ArrayList<String> res = new ArrayList<String>(); if(strs==null || strs.length==0) return res; HashMap<String, ArrayList<String>> hm = new HashMap<String, ArrayList<String>>(); for(String s: strs){ char[] schar = s.toCharArray(); Arrays.sort(schar); String t = new String(schar); if(hm.containsKey(t)){ if(hm.get(t).size()==1){ res.add(hm.get(t).get(0)); } hm.get(t).add(s); res.add(s); }else{ ArrayList<String> tmp = new ArrayList<String>(); tmp.add(s); hm.put(t,tmp); } } return res; }
标签:
原文地址:http://www.cnblogs.com/jiajiaxingxing/p/4449242.html