49 Group Anagrams

49 Group Anagrams

class Solution {
    public List<List<String>> groupAnagrams(String[] strs) {
     
      HashMap<String, List<String>> map = new HashMap<>();
      for(String s: strs){
        char[] current = s.toCharArray();
        Arrays.sort(current);
        String word = String.valueOf(current);
        if(!map.containsKey(word)){
          map.put(word, new ArrayList<String>());
        }
        map.get(word).add(s);
      }
      
      return new ArrayList<List<String>>(map.values());
    }
}



// unfamiliar APIs 

char[] ca = s.toCharArray();
            Arrays.sort(ca);
            String keyStr = String.valueOf(ca);



 map.put(keyStr, new ArrayList<String>());
            map.get(keyStr).add(s);



return new ArrayList<List<String>>(map.values());
    }

 

Given an array of strings, group anagrams together.

Example:

Input: ["eat", "tea", "tan", "ate", "nat", "bat"],
Output:
[
  ["ate","eat","tea"],
  ["nat","tan"],
  ["bat"]
]

Note:

  • All inputs will be in lowercase.
  • The order of your output does not matter.

 

 

优化时间

posted on 2018-08-09 17:38  猪猪&#128055;  阅读(128)  评论(0)    收藏  举报

导航