本文共 1153 字,大约阅读时间需要 3 分钟。
为了将字母异位词分组,可以使用以下方法:
import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;public class Solution { public List > groupAnagrams(String[] strs) { if (strs == null || strs.length < 1) { return null; } Map > wordMap = new HashMap<>(); for (String s : strs) { char[] chars = s.toCharArray(); java.util.Arrays.sort(chars); String key = new String(chars); List list = wordMap.computeIfAbsent(key, k -> new ArrayList<>()); list.add(s); } return new ArrayList<>(wordMap.values()); }}
这个方法通过排序字符并利用哈希表高效地将字母异位词分组,时间复杂度为O(nk logk),空间复杂度为O(nk)。
转载地址:http://fhbn.baihongyu.com/