凡客优品官方网站,CMCAP官方网站,厦门网站建设建网站,郑州手机网站建设题目 题解一:排序哈希表
思路:由于互为字母异位词的两个字符串包含的字母相同#xff0c;因此对两个字符串分别进行排序之后得到的字符串一定是相同的#xff0c;故可以将排序之后的字符串作为哈希表的键。 核心api: //将字符串转换为字符数组char[] ch str.toCharArray();…题目 题解一:排序哈希表
思路:由于互为字母异位词的两个字符串包含的字母相同因此对两个字符串分别进行排序之后得到的字符串一定是相同的故可以将排序之后的字符串作为哈希表的键。 核心api: //将字符串转换为字符数组char[] ch str.toCharArray(); //eat//将字符串数组排序Arrays.sort(ch); //aet//将排序好的字符数组转为字符串作为map集合的keyString key new String(ch);//若key存在map则返回对应的list集合若key不存在则返回新建的list空集合ListString list map.getOrDefault(key,new ArrayList());//map.values()返回所有value并且以list集合返回return new ArrayListListString(map.values());代码: public ListListString groupAnagrams(String[] strs) {// 解法一 : 排序哈希表//key为排序后的字符串value为字母异位词的字符串list集合MapString,ListString map new HashMapString,ListString();//遍历strsfor(String str: strs){//将字符串转换为字符数组char[] ch str.toCharArray(); //eat//将字符串数组排序Arrays.sort(ch); //aet//将排序好的字符数组转为字符串作为map集合的keyString key new String(ch);//若key存在map则返回对应的list集合若key不存在则返回新建的list空集合ListString list map.getOrDefault(key,new ArrayList());//将排序前的字符串加入list集合list.add(str);//加入到map集合 key字符串----value字母异位词map.put(key,list);}//map.values()返回所有value并且以list集合返回return new ArrayListListString(map.values());}