49. Group Anagrams
来源:互联网 发布:机械优化设计方法 pdf 编辑:程序博客网 时间:2024/06/09 15:48
Given an array of strings, group anagrams together.
For example, given: ["eat", "tea", "tan", "ate", "nat", "bat"]
,
Return:
[ ["ate", "eat","tea"], ["nat","tan"], ["bat"]]
思路: 题目意思是将具有相同字母的单词放在一组里.由于有26个字母,可以以字母出现次数构成的字符串为键构建map,属于同一键的即是属于一个list.
时间复杂度:O(N*M) N为字符串个数.M为单个字符串的长度
空间复杂度:O(N)
<span style="font-size:14px;">public class Solution { public List<List<String>> groupAnagrams(String[] strs) { List<List<String>> result=new ArrayList<List<String>>(); if(strs==null) return result; HashMap<String,List<String>> map=new HashMap<String,List<String>>(); for(int i=0;i<strs.length;i++){ StringBuilder sb=new StringBuilder(""); int[] num=new int[26]; for(int j=0;j<strs[i].length();j++){ num[strs[i].charAt(j)-'a']++; } for(int j=0;j<26;j++) sb.append(num[j]); List<String> list=new ArrayList<String>(); if(map.containsKey(sb.toString())){ list=map.get(sb.toString()); list.add(strs[i]); map.put(sb.toString(),list); }else{ list.add(strs[i]); map.put(sb.toString(),list); } } for(String str:map.keySet()){ result.add(map.get(str)); } return result; }}</span>
0 0
- 49. Group Anagrams
- [leetcode] 49.Group Anagrams
- 49. Group Anagrams
- LeetCode 49. Group Anagrams
- [LeetCode]49. Group Anagrams
- leetcode 49. Group Anagrams
- 49. Group Anagrams LeetCode
- 49. Group Anagrams
- 49. Group Anagrams
- 49. Group Anagrams
- Leetcode 49. Group Anagrams
- 49. Group Anagrams
- LeetCode 49. Group Anagrams
- 49. Group Anagrams
- 49. Group Anagrams
- LeetCode 49. Group Anagrams
- [leetcode] 49. Group Anagrams
- LeetCode 49. Group Anagrams
- UVa 12169 Disgruntled Judge
- Eclipse中JSP文件中文乱码解决
- 利用sort对多字段排序
- RocketMQ原理解读 NameServer篇(broker节点治理)
- JaveWeb iReport 制做报表详细图文使用教程
- 49. Group Anagrams
- Java基础--字符串
- 可靠性配置与管理——VRRP配置与管理2
- POJ 3061 Subsequence(尺取法)
- php缓存-内存式-mamcache-安装
- 随机变量的分布与分位数概念
- linux u盘刻录 启动不了的解决方法记录
- HD ACM C++ 1089
- 网易2017秋招编程题