package com.interview.string;
import java.util.*;
/**
* https://leetcode.com/problems/anagrams/
*/
public class GroupAnagramsTogether {
public List<List<String>> groupAnagrams(String[] strs) {
if (strs == null || strs.length == 0)
return new ArrayList<List<String>>();
int listIndex = 0;
List<List<String>> result = new ArrayList<>();
Map<String, Integer> anagramGroup = new HashMap<>();
for (String str : strs) {
char[] chars = str.toCharArray();
Arrays.sort(chars);
String sorted = new String(chars);
if (anagramGroup.containsKey(sorted)) {
int index = anagramGroup.get(sorted);
List<String> listResult = result.get(index);
listResult.add(str);
} else {
List<String> resultList = new ArrayList<>();
resultList.add(str);
result.add(listIndex, resultList);
anagramGroup.put(sorted, listIndex);
listIndex++;
}
}
return result;
}
}