Leetcode 字母异位词分组
字母异位词分组
题目描述:
给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。说明:所有输入均为小写字母。不考虑答案输出的顺序。
题目链接
class Solution {public List<List<String>> groupAnagrams(String[] strs) {Map<String,List<String>> map = new HashMap<String,List<String>>();// 遍历每个元素for(int i = 0 ; i<strs.length ; i++) {char[] temp1 = strs[i].toCharArray();Arrays.sort(temp1); // 排序String temp2 = new String(temp1); // 将字符数组转变为字符串(键)List<String> temp3 = map.get(temp2);if(temp3 == null){ // 查看map中是否存在键位temp2的元素,无则创建temp3 = new ArrayList<String>();temp3.add(strs[i]);}else{ // 有则只要将字母异位词添加即可temp3.add(strs[i]);}map.put(temp2,temp3);}return new ArrayList<List<String>>(map.values());}
}
该题是对哈希表的简单应用,首先我们要确定键,按照题意,可以容易知道只有经过排序的字符串才是我们需要的键,然后通过java的hashCode()方法来判断是否为同一个键。如果为同一个键,则加入当前遍历的字符串即可,最后返回map所有的值。
注:字符串的哈希码根据该公式计算 s[0]*31^(n-1) + s[1]*31^(n-2) + … + s[n-1]
Leetcode 字母异位词分组相关推荐
- leetcode 字母异位词分组(js实现)
字母异位词分组 给定一个字符串数组,将字母异位词组合在一起.字母异位词指字母相同,但排列不同的字符串. 示例: 输入: ["eat", "tea", " ...
- LeetCode 49字母异位词分组50pow(x,n)51八皇后
原创公众号:bigsai 如果不错记得点赞收藏! 关注回复 bigsai 领取Java进阶pdf资源,回复进群加入力扣打卡群. 上周打卡内容:43字符串相乘&44通配符匹配 45跳跃游戏&am ...
- 【LeetCode】【HOT】49. 字母异位词分组(递归)
[LeetCode][HOT]49. 字母异位词分组 文章目录 [LeetCode][HOT]49. 字母异位词分组 package hot;import java.util.ArrayList; i ...
- leetcode之字母异位词分组
题目描述: 给你一个字符串数组,请你将 字母异位词 组合在一起.可以按任意顺序返回结果列表. 字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次. 示例 1: 输 ...
- 模拟卷Leetcode【普通】049. 字母异位词分组
049. 字母异位词分组 给你一个字符串数组,请你将 字母异位词 组合在一起.可以按任意顺序返回结果列表. 字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母都恰好只用一次. 示 ...
- leetcode 49. 字母异位词分组
49. 字母异位词分组 - 力扣(LeetCode) 一开始想的是把各个字符串中每个字符ascii码值相加,然后相同的ascii码值放在一个组,在相同的ascii码值组中再去细找字母异位词. 一开始算 ...
- LeetCode 热题 HOT — 字母异位词分组
字母异位词分组 原题地址 给你一个字符串数组,请你将 字母异位词 组合在一起.可以按任意顺序返回结果列表. 字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次. ...
- Leetcode刷题100天—49. 字母异位词分组( 排序)—day37
前言: 作者:神的孩子在歌唱 大家好,我叫运智 49. 字母异位词分组 难度中等847收藏分享切换为英文接收动态反馈 给你一个字符串数组,请你将 字母异位词 组合在一起.可以按任意顺序返回结果列表. ...
- 【LeetCode】49.字母异位词分组 (三种解法开拓思路,java实现)
49. 字母异位词分组 分析 方法一:排序数组分类 思路 当且仅当它们的排序字符串相等时,两个字符串是字母异位词. 算法 维护一个映射 ans : {String -> List},其中每个键 ...
最新文章
- 英语 常用表达方法搜集
- 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1054:三角形判断
- 错误管道反应:Paul Szymkowiak和上下文驱动的思想家如何交谈
- OpenCV 像素的读取与操作
- 从代码里提取的测试需求
- if __name__ == __main___一文带你弄懂python中if __name__ == #39;__main__#39;
- 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串 (转)...
- GBaseDataStudio 管理工具简介
- 建行提示找不到服务器,中国建设银行E路护航网银安全组件常见问题解答
- Spring MVC的数据绑定(简单数据绑定+POJO类型绑定)
- 前端:打开你的摄像头
- Html编码(#数字型)与解码小结 - 针对Puny Code(中文域名)的解码处理
- C#将PDF文件转为图片
- 从实际出发,改变自己。
- 大学计算机应用基础与计算思维,计算思维在二本院校计算机应用基础课程中应用.doc...
- 使用Maven WAR插件实现多Web应用间的重迭运用
- Android Audio - 支持多个CODEC同时录音
- 一顿饭的事儿,搞懂了Linux5种IO模型
- 三极管的一些基本知识
- 饥荒mod制作学习(2)