2023.10.7
根据字母异位词的定义,可知:所有字母异位词经过排序之后得到的字符串相同,所以可以定义一个哈希表,将排序后的字符串当作哈希表的键,哈希表的值则用来存储该字母异位词对应的所有字符串,最后将哈希表的值返回即可。
java代码如下:
class Solution {public List<List<String>> groupAnagrams(String[] strs) {Map<String,List<String>> map = new HashMap<>();for(String str : strs){char[] array = str.toCharArray();//将字符串转化成字符数组,方便排序Arrays.sort(array);String key = new String(array);//将排序后的字符数组转回字符串,当作哈希表的键List<String> list = map.getOrDefault(key,new ArrayList<String>());//从哈希表取出当前键对应的值,若无则默认返回一个数组列表list.add(str);//将当前字符串加入数组列表map.put(key,list);}List<List<String>> ans = new ArrayList<>(map.values());return ans;}
}