6/06/2014

101. Anagrams

import java.util.Hashtable;

public class Solution {
    public ArrayList<String> anagrams(String[] strs) {
        ArrayList<String> res = new ArrayList<String> ();
       
        Hashtable<String, ArrayList<String>> hashtable = new Hashtable<String, ArrayList<String>>();
       
        for (int i=0; i<strs.length; i++) {
            String sorted = sorted(strs[i]);
            ArrayList<String> val = hashtable.get(sorted);
           
            if (val!=null) {
                val.add(strs[i]);
            } else {
                val = new ArrayList<String> ();
                val.add(strs[i]);
                hashtable.put(sorted, val);
            }
        }
       
        Set<String> set = hashtable.keySet();
       
        for (String s:set) {
            ArrayList<String> val = hashtable.get(s);
            if (val.size()>1) res.addAll(val);
        }
       
        return res;
    }
   
    public String sorted(String s) {
        char[] schar = s.toCharArray();
        Arrays.sort(schar);
        return new String(schar);
    }
}

没有评论:

发表评论