My answer:
class Solution { public List<List<String>> groupAnagrams(String[] strs) { List<List<String>> result = new ArrayList<List<String>>(); if (strs == null || strs.length == 0) { return result; } Map<String, List<String>> stringAnagramMap = new HashMap<String, List<String>>(); for (int i = 0; i < strs.length; i ++) { char[] charsOfStr = strs[i].toCharArray(); Arrays.sort(charsOfStr); String sortedChar = String.valueOf(charsOfStr); if (!stringAnagramMap.containsKey(sortedChar)) { List<String> singleResult = new ArrayList<String>(); stringAnagramMap.put(sortedChar, singleResult); } stringAnagramMap.get(sortedChar).add(strs[i]); } for (List<String> value : stringAnagramMap.values()) { result.add(value); } return result; } }
No comments:
Post a Comment