字母异位词分组

题目描述:

给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。
说明:
所有输入均为小写字母。
不考虑答案输出的顺序。

题目链接

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 字母异位词分组相关推荐

  1. leetcode 字母异位词分组(js实现)

    字母异位词分组 给定一个字符串数组,将字母异位词组合在一起.字母异位词指字母相同,但排列不同的字符串. 示例: 输入: ["eat", "tea", " ...

  2. LeetCode 49字母异位词分组50pow(x,n)51八皇后

    原创公众号:bigsai 如果不错记得点赞收藏! 关注回复 bigsai 领取Java进阶pdf资源,回复进群加入力扣打卡群. 上周打卡内容:43字符串相乘&44通配符匹配 45跳跃游戏&am ...

  3. 【LeetCode】【HOT】49. 字母异位词分组(递归)

    [LeetCode][HOT]49. 字母异位词分组 文章目录 [LeetCode][HOT]49. 字母异位词分组 package hot;import java.util.ArrayList; i ...

  4. leetcode之字母异位词分组

    题目描述: 给你一个字符串数组,请你将 字母异位词 组合在一起.可以按任意顺序返回结果列表. 字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次. 示例 1: 输 ...

  5. 模拟卷Leetcode【普通】049. 字母异位词分组

    049. 字母异位词分组 给你一个字符串数组,请你将 字母异位词 组合在一起.可以按任意顺序返回结果列表. 字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母都恰好只用一次. 示 ...

  6. leetcode 49. 字母异位词分组

    49. 字母异位词分组 - 力扣(LeetCode) 一开始想的是把各个字符串中每个字符ascii码值相加,然后相同的ascii码值放在一个组,在相同的ascii码值组中再去细找字母异位词. 一开始算 ...

  7. LeetCode 热题 HOT — 字母异位词分组

    字母异位词分组 原题地址 给你一个字符串数组,请你将 字母异位词 组合在一起.可以按任意顺序返回结果列表. 字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次. ...

  8. Leetcode刷题100天—49. 字母异位词分组( 排序)—day37

    前言: 作者:神的孩子在歌唱 大家好,我叫运智 49. 字母异位词分组 难度中等847收藏分享切换为英文接收动态反馈 给你一个字符串数组,请你将 字母异位词 组合在一起.可以按任意顺序返回结果列表. ...

  9. 【LeetCode】49.字母异位词分组 (三种解法开拓思路,java实现)

    49. 字母异位词分组 分析 方法一:排序数组分类 思路 当且仅当它们的排序字符串相等时,两个字符串是字母异位词. 算法 维护一个映射 ans : {String -> List},其中每个键 ...

最新文章

  1. 英语 常用表达方法搜集
  2. 信息学奥赛一本通(C++)在线评测系统——基础(一)C++语言—— 1054:三角形判断
  3. 错误管道反应:Paul Szymkowiak和上下文驱动的思想家如何交谈
  4. OpenCV 像素的读取与操作
  5. 从代码里提取的测试需求
  6. if __name__ == __main___一文带你弄懂python中if __name__ == #39;__main__#39;
  7. 数组字符串那些经典算法:最大子序列和,最长递增子序列,最长公共子串,最长公共子序列,字符串编辑距离,最长不重复子串,最长回文子串 (转)...
  8. GBaseDataStudio 管理工具简介
  9. 建行提示找不到服务器,中国建设银行E路护航网银安全组件常见问题解答
  10. Spring MVC的数据绑定(简单数据绑定+POJO类型绑定)
  11. 前端:打开你的摄像头
  12. Html编码(#数字型)与解码小结 - 针对Puny Code(中文域名)的解码处理
  13. C#将PDF文件转为图片
  14. 从实际出发,改变自己。
  15. 大学计算机应用基础与计算思维,计算思维在二本院校计算机应用基础课程中应用.doc...
  16. 使用Maven WAR插件实现多Web应用间的重迭运用
  17. Android Audio - 支持多个CODEC同时录音
  18. 一顿饭的事儿,搞懂了Linux5种IO模型
  19. 三极管的一些基本知识
  20. 饥荒mod制作学习(2)

热门文章

  1. 小米路由器R3开启SSH登陆权限
  2. 那些年Android面试官常问的知识点,分享一点面试小经验
  3. 【大学物理实验】冷却法测金属比热容
  4. JAVA中级之图形界面
  5. android beam传输速率,三星S Beam 与Android Beam有什么不同
  6. 考研英语长难句(刘晓燕)笔记 第三课 名词(短语)和名词性从句
  7. 简单的缩写含义(PV UV VV CV IP)
  8. Elasticsearch Search API
  9. 实验(2)信号与系统的时域分析
  10. MVC模式的中国快递物流网站建设,JSP源码下载