力扣 字母异位词分组 哈表 集合

👨‍🏫 力扣 字母异位词分组

⭐ 思路

由于互为字母异位词的两个字符串包含的字母相同,因此对两个字符串分别进行排序之后得到的字符串一定是相同的,故可以将排序之后的字符串作为哈希表的键。

🍑 AC code

java 复制代码
class Solution {
    public List<List<String>> groupAnagrams(String[] strs)
	{
		HashMap<String, List<String>> map = new HashMap<>();
		for (String s : strs)
		{
			char[] arr = s.toCharArray();//字符串转字符数组
			Arrays.sort(arr);
			String idx = String.valueOf(arr);//字符数组转字符串
			List<String> list = map.getOrDefault(idx, new ArrayList<String>());
			list.add(s);
			map.put(idx, list);

//			if (map.containsKey(idx))
//			{
//				map.get(idx).add(s);
//			} else
//			{
//				ArrayList<String> list = new ArrayList<String>();
//				list.add(s);
//				map.put(idx, list);
//			}
		}
		//将 map 中值作为 list集合的初始化值
		List<List<String>> ans = new ArrayList<>(map.values());
		return ans;
	}
}
相关推荐
小白羊丨2 小时前
如何诊断 Prompt 模板导致的效果下降?
人工智能·算法·prompt
OPEN-F3 小时前
C++11/14新特性精讲:移动语义与智能指针实战
开发语言·c++·算法
lisin-lee-cooper3 小时前
【leetcode658】有序数组找出k个最接近x的数
java·数据结构·算法
sunburn-3 小时前
Java堆(Heap)详解与实战教学
java·开发语言·数据结构·ide·算法
智碳能碳管理平台4 小时前
工业能耗台账标准化:能碳管理系统的数据口径怎么设计
算法·能碳管理系统·智碳能碳管理平台·企业能碳管理系统·碳排放核算软件·绿色工厂申报saas·能碳管理平台
带多刺的玫瑰5 小时前
Leecode#15刷题之三数之和
算法·leetcode·职场和发展
圣保罗的大教堂5 小时前
leetcode 877. 石子游戏 中等
leetcode
哭泣方源炼蛊5 小时前
并查集进阶 P1(带权并查集,并查集分类)
数据结构·c++·算法·二进制·带权并查集
牧羊人.3335 小时前
动手学深度学习 02 | 手写数字识别
图像处理·人工智能·深度学习·算法
武帝为此5 小时前
【InnoDB存储引擎介绍】
数据库·算法