49. Group Anagrams
来源:互联网 发布:魅族手机移动数据开关 编辑:程序博客网 时间:2024/05/22 12:36
题目:
Given an array of strings, group anagrams together.
For example, given: ["eat", "tea", "tan", "ate", "nat", "bat"]
,
Return:
[ ["ate", "eat","tea"], ["nat","tan"], ["bat"]]
class Solution { public List<List<String>> groupAnagrams(String[] strs) { /* 解题思路:将字符串排序,然后将排序后的字符作为hashmap的键,没有排序的字符串作为值, 如果发现键相同,则取出值,并加新的串拼接起来即可 最后遍历map,把字符串取出,再把字符串变成字符数组即可, 注意字符串为空的情况 */ List<List<String>> result=new ArrayList<List<String>>(); if(strs.length==0){ return result; } HashMap<String,String> map=new HashMap<String,String>(); for(int i=0;i<strs.length;i++){ String temp=getSum(strs[i]); if(map.containsKey(temp)){ String stemp=map.get(temp); stemp=stemp+"!"+strs[i]; map.put(temp,stemp); }else{ map.put(temp,strs[i]); } }//for Set<String> set=map.keySet();for (String string : set) {String s=map.get(string);String[] sets=s.split("!"); List<String> array=new ArrayList<String>(); //字符串为空的时候,!比空字符串数组的个数多1 if(sets.length==0){ for(int i=0;i<=s.length();i++){ array.add(""); } }else{ for(int i=0;i<sets.length;i++){ array.add(sets[i]); } }result.add(array);} return result; } //将字符变成字符数组,并且求和 public static String getSum(String str){ char[] ch=str.toCharArray(); Arrays.sort(ch); String result=""; for(int i=0;i<ch.length;i++){ result+=ch[i]; } return result; }}
阅读全文
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
- Java大数模板——加法、减法、乘法、除法、开方、求余
- 二叉搜索树
- 每日一则JavaWeb---Spring的MessageSource的作用
- sys/bios---邮箱
- 统计数字问题
- 49. Group Anagrams
- linux通过内核启动参数预留系统内存
- [SDUT](2074)区间覆盖问题 ---贪心
- TensorFlow 教程入门
- 操作系统(一)
- 8-30 DAIRY
- 一种MFC对话框程序排错的方法
- java中的Calendar属性详解
- C++实现类似于JAVA的接口