leetcode JAVA Anagrams 难度系数3 3.15
2014-02-01 11:06
519 查看
Question:
Given an array of strings, return all groups of strings that are anagrams.
Note: All inputs will be in lower-case.
Given an array of strings, return all groups of strings that are anagrams.
Note: All inputs will be in lower-case.
import java.util.Hashtable; public class Solution { public ArrayList<String> anagrams(String[] strs) { ArrayList<String> results = new ArrayList<String>(); Hashtable<String, ArrayList<String>> ht = new Hashtable<String, ArrayList<String>>(); for (int i = 0; i < strs.length; i++) { char[] c = strs[i].toCharArray(); Arrays.sort(c); String newStrs = new String(c); ArrayList<String> result = ht.get(newStrs); if (result==null) { result = new ArrayList<String>(); result.add(strs[i]); ht.put(newStrs, result); }else { result.add(strs[i]); } } Set<String> set = ht.keySet(); for(String str: set){ if (ht.get(str).size()>1) { results.addAll(ht.get(str)); } } return results; } }