赞
踩
给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。
字母异位词 是由重新排列源单词的字母得到的一个新单词,所有源单词中的字母通常恰好只用一次。
提示:
1 <= strs.length <= 104
0 <= strs[i].length <= 100
strs[i]
仅包含小写字母- class Solution {
- public static List<List<String>> groupAnagrams(String[] strs) {
- HashMap<String,List<String>> map = new HashMap();
- int len = strs.length;
- for(int i = 0 ; i < len ; i++){
- String key = strs[i];
- char[] ckey = key.toCharArray();
- Arrays.sort(ckey);
- String newKey = String.valueOf(ckey);
- List<String> list = map.getOrDefault(newKey, new ArrayList<String>());
- list.add(strs[i]);
- map.put(newKey,list);
- }
-
- List<List<String>> res = new ArrayList<>();
- Set<Map.Entry<String, List<String>>> entries = map.entrySet();
- Iterator<Map.Entry<String, List<String>>> iterator = entries.iterator();
- while(iterator.hasNext()){
- Map.Entry<String, List<String>> next = iterator.next();
- res.add(next.getValue());
- }
- return res;
- }
- }
总结:利用每个String排序后相同的办法来解决字母异位词,借用map存储进行分类,学到了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。