LeetCode 49 Group Anagrams(字符串分组)
2017-03-14 14:22
435 查看
题目链接: https://leetcode.com/problems/anagrams/?tab=Description
Problem:给一个字符串数组,将其中的每个字符串进行分组,要求每个分组中的各个字符串所包含的字母都相同对字母的前后顺序没有要求!
使用 Map<String, List<String>> map 进行求解
给定的字符串数组为 String[] strs
1、当strs为空时返回new ArrayList<List<String>>();
2、否则,定义上述的map,对strs数组中的每一个元素s进行判断
3、首先将s转换为char数组 char[] ca = s.toCharArray();
4、对ca进行排序操作, Arrays.sort(ca)
5、将ca再转为String strKey (此时的strKey每一个字符顺序满足字典序排列即最小的那一个顺序)
6、判断当前map中是否包含ca,如果不包含,则map.put(keyStr, new ArrayList<String>());
7、然后将当前的s放入对应的keyStr所对应的List中去
8、最终的返回结果为new ArrayList<List<String>>(map.values()) 传参数为map.values
参考代码:
Problem:给一个字符串数组,将其中的每个字符串进行分组,要求每个分组中的各个字符串所包含的字母都相同对字母的前后顺序没有要求!
使用 Map<String, List<String>> map 进行求解
给定的字符串数组为 String[] strs
1、当strs为空时返回new ArrayList<List<String>>();
2、否则,定义上述的map,对strs数组中的每一个元素s进行判断
3、首先将s转换为char数组 char[] ca = s.toCharArray();
4、对ca进行排序操作, Arrays.sort(ca)
5、将ca再转为String strKey (此时的strKey每一个字符顺序满足字典序排列即最小的那一个顺序)
6、判断当前map中是否包含ca,如果不包含,则map.put(keyStr, new ArrayList<String>());
7、然后将当前的s放入对应的keyStr所对应的List中去
8、最终的返回结果为new ArrayList<List<String>>(map.values()) 传参数为map.values
参考代码:
package leetcode_50; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; /*** * * @author pengfei_zheng * 将字符串数组进行分组操作 */ public class Solution49 { public List<List<String>> groupAnagrams(String[] strs) { if (strs == null || strs.length == 0) return new ArrayList<List<String>>(); 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()); } }
相关文章推荐
- Leetcode 49: Group Anagrams
- leetcode49-Group Anagrams(同构词(相同字母组成的单词)分类)
- leetCode 49 Group Anagrams
- LeetCode(49)Group Anagrams
- LeetCode49_Group Anagrams
- leetcode49 Group Anagrams
- LeetCode: 49. Group Anagrams 对颠倒字符串分组
- Leetcode 49 Group Anagrams
- LeetCode 49 Group Anagrams
- 【leetcode】【49】Group Anagrams
- Leetcode 49 Group Anagrams
- Leet Code 49 Group Anagrams - 变形词分组 - Java
- LeetCode - 49 - Group Anagrams
- LeetCode-49 Anagrams(返回字符相同的字符串)
- LeetCode 49 - Group Anagrams
- leetcode(49):Group Anagrams
- LeetCode49 Group Anagrams
- [python]leetcode(49). Group Anagrams
- LeetCode-49-Group Anagrams list_to_string、string list
- Leetcode 49 Group Anagrams