题目:
Given an array of strings, group anagrams together.
For example, given: ["eat", "tea", "tan", "ate", "nat", "bat"]
,
Return:
[ ["ate", "eat","tea"], ["nat","tan"], ["bat"] ]
Note: All inputs will be in lower-case.
链接:https://leetcode.com/problems/anagrams/#/description
4/19/2017
37ms, 37%
注意的问题:
1. 第7,8,9行的写法
2. 第19,20行写法
1 public class Solution { 2 public List<List<String>> groupAnagrams(String[] strs) { 3 Map<String, List<String>> m = new HashMap<String, List<String>>(); 4 List<List<String>> ret = new ArrayList<>(); 5 for (int i = 0; i < strs.length; i++) { 6 String s = strs[i]; 7 char[] ar = s.toCharArray(); 8 Arrays.sort(ar); 9 String t = String.valueOf(ar); 10 List<String> l; 11 if (m.containsKey(t)) { 12 l = m.get(t); 13 } else { 14 l = new ArrayList<String>(); 15 } 16 l.add(s); 17 m.put(t, l); 18 } 19 for (Map.Entry<String, List<String>> entry: m.entrySet()) { 20 List<String> value = entry.getValue(); 21 ret.add(value); 22 } 23 return ret; 24 } 25 }