Group Anagrams

来源:互联网 发布:java 网络拓扑发现 编辑:程序博客网 时间:2024/06/05 23:42

Given an array of strings, group anagrams together.

For example, given: ["eat", "tea", "tan", "ate", "nat", "bat"]
Return:

[  ["ate", "eat","tea"],  ["nat","tan"],  ["bat"]]
代码如下:

import java.util.ArrayList;import java.util.Arrays;import java.util.HashMap;import java.util.List;import java.util.Map;public class GroupAnagrams {public List<List<String>> groupAnagrams(String[] strs){if(strs == null || strs.length == 0)return new ArrayList<List<String>>();Map<String,List<String>> map = new HashMap<String,List<String>>();for(String s : strs){char[] c = s.toCharArray();Arrays.sort(c);String keystr = String.valueOf(c);if(!map.containsKey(keystr))map.put(keystr,new ArrayList<>());map.get(keystr).add(s);}return new ArrayList<List<String>>(map.values());}}