leetcode 49 Group Anagram
lc49 Group Anagram
逻辑很简单,就是统计字母出现次数,然后将完全相同的字符串放入同一list
关键是怎么实现
统计的部分,可以通过将string排序,Arrays.sort(),或者像之前int[26]一样,
那么如何一次遍历,就能将相同字符串放入一个list呢?
这里用到了HashMap<String, List<String>>,String为key,用来判断排序过后的str是否相同,若是相同,直接原来的str加入List<String>
最后返回值就是把map的value转成List<List<String>>
可以用到一个小方法:
return new ArrayList<List<String>>(map.values())
因为HashMap的value都是List<String>
class Solution {
public List<List<String>> groupAnagrams(String[] strs) {
List<List<String>> res = new ArrayList<>();
if(strs.length == 0)
return res;
HashMap<String, List<String>> map = new HashMap<>(); for(int i=0; i<strs.length; i++){
char[] tmp = strs[i].toCharArray();
Arrays.sort(tmp);
String key = String.valueOf(tmp);
if(!map.containsKey(key))
map.put(key, new ArrayList<String>());
map.get(key).add(strs[i]);
} return new ArrayList<List<String>>(map.values());
}
}
leetcode 49 Group Anagram的更多相关文章
- [LeetCode] 49. Group Anagrams 分组变位词
Given an array of strings, group anagrams together. For example, given: ["eat", "tea& ...
- LeetCode - 49. Group Anagrams
49. Group Anagrams Problem's Link ------------------------------------------------------------------ ...
- leetcode@ [49] Group Anagrams (Hashtable)
https://leetcode.com/problems/anagrams/ Given an array of strings, group anagrams together. For exam ...
- [leetcode]49. Group Anagrams变位词归类
Given an array of strings, group anagrams together. Example: Input: ["eat", "tea" ...
- LeetCode 49 Group Anagrams(字符串分组)
题目链接: https://leetcode.com/problems/anagrams/?tab=Description Problem:给一个字符串数组,将其中的每个字符串进行分组,要求每个分 ...
- [Leetcode] 49. Group Anagrams_Medium
Given an array of strings, group anagrams together. Example: Input: ["eat", "tea" ...
- [leetcode]49. Group Anagrams重排列字符串分组
是之前的重排列字符串的延伸,判断是重排列后存到HashMap中进行分组 这种HashMap进行分组的方式很常用 public List<List<String>> groupA ...
- [LeetCode] 249. Group Shifted Strings 分组偏移字符串
Given a string, we can "shift" each of its letter to its successive letter, for example: & ...
- LeetCode 49: 字母异位词分组 Group Anagrams
LeetCode 49: 字母异位词分组 Group Anagrams 题目: 给定一个字符串数组,将字母异位词组合在一起.字母异位词指字母相同,但排列不同的字符串. Given an array o ...
随机推荐
- ubuntu下安装git提示无root权限
apt-get install git 获取git指令 sudo passwd root 重置unix密码 su root 键入密码 参考链接 https://www.cnblogs.com/2she ...
- C# - Finalize 和 Dispose
重要: https://www.cnblogs.com/Jessy/articles/2552839.html https://blog.csdn.net/daxia666/article/detai ...
- Windows exit
退出 CMD.EXE 程序(命令解释器)或当前批处理脚本. EXIT [/B] [exitCode] /B 指定要退出当前批处理脚本而不是 CMD.EXE.如果从一个 ...
- 「题解」:$Simple$
问题 A: $Simple$ 时间限制: 1 Sec 内存限制: 256 MB 题面 题面谢绝公开. 题解 不算数学的数学题?? 直接枚举会重.$60%$两种算法:1.无脑$vis$数组记录.2.$ ...
- js代码触发事件
/*** * 需要触发谁的点击事件 * @param how_id 节点的id 如:<input id='test'/> 则how_id=test * @param how_this 这个 ...
- STM32F103 Feature
- Spring MVC(十六)--Spring MVC国际化实例
上一篇文章总结了一下Spring MVC中实现国际化所需的配置,本文继上一文举一个完整的例子,我选择用XML的方式.我的场景是这样的: 访问一个页面时,这个页面有个表格,对表头中的列名实现国际化. 第 ...
- 02_mybatis开发dao的方法
MyBatis开发dao的方法 1. SqlSession使用范围 1.1 SqlSessionFactoryBuilder 通过SqlSessionFactoryBuilder创建会话工厂Sql ...
- 【转载】flex布局超过显示省略号
<div class="main"> <div class="content"> <h4 class="name&quo ...
- DES加密算法-C语言
头文件:DES.h #ifndef DES_hpp #define DES_hpp #include <stdio.h> #include <memory.h> #includ ...