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

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

⭐ 思路

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

🍑 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;
	}
}
相关推荐
文丑颜不良啊7 小时前
LeetCode2521~2540题目解析
java·leetcode
lisw058 小时前
Dayhoff的PAM替换矩阵理论评介!
线性代数·算法·矩阵
一起学安全技术9 小时前
拆大模型 03|注意力的一句话版本:不用论文讲清 Attention
深度学习·算法·语言模型·transformer
Delightrs10 小时前
Rust LeetCode238 算法题解
开发语言·算法·rust
自信1504130575910 小时前
重生之从0开始学习c++之——vector-中篇
c++·学习·算法
文丑颜不良啊10 小时前
LeetCode2501~2520题目解析
java·leetcode
lsc_blog16 小时前
年终自评别贴提交记录,把技术产出讲成变化
数据库·面试·职场和发展·跳槽·求职招聘
GoAI21 小时前
DeepSeek Harness Memory (一)主流记忆插件总结
后端·算法·面试
Pniubi1 天前
力扣54.螺旋矩阵
算法·leetcode·矩阵