leetcode--Anagrams

Given an array of strings, return all groups of strings that are anagrams.

Note: All inputs will be in lower-case.

public class Solution {
    public ArrayList<String> anagrams(String[] strs) {
            ArrayList<String> result = new ArrayList<String>();
		if(strs.length > 0){
			HashMap<String, ArrayList<String> > words = new HashMap<String, ArrayList<String>>();
			for(String s : strs){
				String sortedString = sortedString(s);
				if(words.containsKey(sortedString))
					words.get(sortedString).add(s);
				else{
					ArrayList<String> alist = new ArrayList<String>();
					alist.add(s);
					words.put(sortedString, alist);
				}				
			}			
			Iterator<ArrayList<String> > itr = words.values().iterator();
			while(itr.hasNext()){
				ArrayList<String> nodes = itr.next();
				if(nodes.size()> 1)
					result.addAll(nodes);
			}
		}
		return result;
    }
	
	public String sortedString(String s){
		char[] Schar = s.toCharArray(); 
		Arrays.sort(Schar);
		return Arrays.toString(Schar);
    }
}

  

原文地址:https://www.cnblogs.com/averillzheng/p/3541358.html