1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33
| import java.util.Arrays; import java.util.HashMap; import java.util.LinkedList; import java.util.List;
public class GroupAnagrams { public List<List<String>> groupAnagrams(String[] strs) { HashMap<Integer, LinkedList<String>> m = new HashMap<Integer, LinkedList<String>>(); for (String s: strs) { int key = 0; char[] cs = s.toCharArray(); for (char c: cs) { key |= 1 << c - 'a'; } if (!m.containsKey(key)) { m.put(key, new LinkedList<>()); } m.get(key).add(s); } List<List<String>> ans = new LinkedList<>(); for (LinkedList l : m.values()) { ans.add(l); } return ans; } public static void main(String[] args) { String s = "fdasf"; char[] c = s.toCharArray(); Arrays.sort(c); System.out.println(String.valueOf(c)); }
}
|