import java.util.*; /** * NC294 字母异位词分组 * @author d3y1 */ public class Solution { /** * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 * * * @param strs string字符串一维数组 * @return string字符串二维数组 */ public String[][] groupAnagrams (String[] strs) { // keyWord -> words HashMap<String, ArrayList<String>> map = new HashMap<>(); char[] keyWordChars; String keyWord; ArrayList<String> wordList; for(String word: strs){ keyWordChars = word.toCharArray(); Arrays.sort(keyWordChars); keyWord = String.valueOf(keyWordChars); wordList = map.get(keyWord); if(wordList != null){ wordList.add(word); }else{ wordList = new ArrayList<>(); wordList.add(word); } map.put(keyWord, wordList); } String[][] resultArr = new String[map.size()][]; int i = 0; int j = 0; for(String key: map.keySet()){ wordList = map.get(key); resultArr[i] = new String[wordList.size()]; for(String word: wordList){ resultArr[i][j++] = word; } i++; j = 0; } return resultArr; } }