算法系列——Group Anagrams
来源:互联网 发布:电视直播软件清晰度 编辑:程序博客网 时间:2024/06/05 01:08
题目描述
Given an array of strings, group anagrams together.
For example, given: [“eat”, “tea”, “tan”, “ate”, “nat”, “bat”],
Return:
[ ["ate", "eat","tea"], ["nat","tan"], ["bat"]]
解题思路
该题目要求是将给定的一组字符串数组,按照同构词(相同字母组成的单词)分类,每组单词按照字典排序。
还是利用hash表。同构词在排序过后,内容一致。遍历String数组,先对字符串进行排序,将排序后的同构词作为key,同构词的列表作为value,遍历过程中不断将字符串添加到对应的key的列表中,最终返回结果。
程序实现
public class Solution { public List<List<String>> groupAnagrams(String[] strs) { List<List<String>> result=new ArrayList<List<String>>(); if(strs==null||strs.length==0) return result; Map<String,List<String>> map=new HashMap<String,List<String>>(); for(String s:strs){ char[] ca=s.toCharArray(); Arrays.sort(ca); String keyStr=String.valueOf(ca); if(!map.containsKey(keyStr)) map.put(keyStr,new ArrayList<String>()); map.get(keyStr).add(s); } return new ArrayList<List<String>>(map.values()); }}
阅读全文
0 0
- 算法系列——Group Anagrams
- LeetCode49——Group Anagrams
- Algorithms—49.Group Anagrams
- 算法9 Group Anagrams
- LeetCode算法题目:Group Anagrams
- leetcode系列(59)Group Anagrams
- [LeetCode]49. Group Anagrams &&哈希算法
- leetcode——49——Group Anagrams
- Group Anagrams
- Group Anagrams(***)
- Group Anagrams
- Group Anagrams
- Group Anagrams
- Group Anagrams
- Group Anagrams
- Group Anagrams
- Group Anagrams
- Group Anagrams
- Android初级开发(四)——补充1、Video View的应用
- linux开发之交叉编译器环境搭建系统兼容的问题
- 翻转字符串
- Java 关于 equals与操作符==的区别
- 这篇关于bitset类型的
- 算法系列——Group Anagrams
- ejs 中如length为0 会报错,要过滤一下,并不是和原有的div完全一样的;
- 编译Hadoop并给HBase应用Snappy本地库
- 开发中的辅助工具
- Bootstrap—轻松制作漂亮表格(table)
- Dijkstra&&Floyd
- 安装IntelliJ IDEA的一些配置
- 从JDK源码角度看Short
- C语言初步知识与基本数据类型(上)