49. Group Anagrams
Given an array of strings, group anagrams together.
For example, given: ["eat", "tea", "tan", "ate", "nat", "bat"]
,
Return:
[
["ate", "eat","tea"],
["nat","tan"],
["bat"]
]
Note: All inputs will be in lower-case.
===============
Anagram,相同字母异序词
返回所有的组合
思路:利用hashmap创建一个key-value数据结构,unordered_map<string,int> m;
m的键值是排完序的字符串,value值是vector<vector<string>> re返回值的下标,
这样对于每一个字符串,先对其排序,然后在哈希表中查找,是否有相对应的字符串,
如果有,那么就在re相应位置中插入单词
否则,新建一个字符数组,插入re中.
========
代码:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
vector<vector<string>> re;
if(strs.empty()) return re;
unordered_map<string,int> m;
int k = ;
for(size_t i = ;i<strs.size();i++){
string tmp = strs[i];
sort(tmp.begin(),tmp.end());
unordered_map<string,int>::iterator mit = m.find(tmp);
if(mit == m.end()){
vector<string> t;
t.push_back(strs[i]);
m[tmp] = k++;
re.push_back(t);
}else{
re[m[tmp]].push_back(strs[i]);
}
}///for
for(size_t i = ;i<re.size();i++){
sort(re[i].begin(),re[i].end());
} for(auto i:re){
for(auto j:i){
cout<<j<<" ";
}cout<<endl;
}cout<<endl;
return re;
}
===========
49. Group Anagrams的更多相关文章
- LeetCode - 49. Group Anagrams
49. Group Anagrams Problem's Link ------------------------------------------------------------------ ...
- 刷题49. Group Anagrams
一.题目说明 题目是49. Group Anagrams,给定一列字符串,求同源词(包含相同字母的此)的集合.题目难度是Medium. 二.我的做法 题目简单,就不多说,直接上代码: class So ...
- 49. Group Anagrams - LeetCode
Question 49. Group Anagrams Solution 思路:维护一个map,key是输入数组中的字符串(根据字符排好序) Java实现: public List<List&l ...
- 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. For example, given: ["eat", " ...
- 【一天一道LeetCode】#49. Group Anagrams
一天一道LeetCode系列 (一)题目 Given an array of strings, group anagrams together. For example, given: [" ...
- [leetcode]49. Group Anagrams变位词归类
Given an array of strings, group anagrams together. Example: Input: ["eat", "tea" ...
- LeetCode OJ 49. Group Anagrams
题目 Given an array of strings, group anagrams together. For example, given: ["eat", "t ...
- 49. Group Anagrams (string, HashTable)
Given an array of strings, group anagrams together. For example, given: ["eat", "tea& ...
随机推荐
- 215. Kth Largest Element in an Array
Find the kth largest element in an unsorted array. Note that it is the kth largest element in the so ...
- poj 1260 dp
Description In Pearlania everybody is fond of pearls. One company, called The Royal Pearl, produces ...
- smartUpload组件文件上传
public class SmartUploadServlet extends HttpServlet { public void doGet(HttpServletRequest request, ...
- JavaWeb学习记录(二十七)——定时发送邮件ServletContextListener监听实现
public class EmailSendListener implements ServletContextListener{ @Override public void contextDe ...
- 3-4 rpm包查询
概述:yum不能查询已经安装好的rpm包, 就算采用了yum来进行安装,查询方法还是依赖rpm包的查询, 因此rpm包的查询十分常用和重要 1.查询是否安装 <1>rpm -q 包名(不是 ...
- phpwind数据同步本地后登陆异常
在讲数据同步到本地之后,发现输入用户名和密码之后点击登陆,依然会返回到之前的页面,并且显示的还是未登录的状态. 解决办法:在后台中将:站点设置--cookie作用域留空即可.
- Linux下串口与工业协议的开发
1.串口通信原理 串口通信定义 串口通信:数据的串行传送方式.串口通信可分为同步通信与异步通信. 同步通信:按照软件识别同步字符来实现数据的发送和接收. 将许多字符组成一个信息组进行发送 要求发送时钟 ...
- linux下Redis与phpredis扩展安装
++++++++++++++++++++++++++++++++++++++++++++++linux下Redis与phpredis扩展安装++++++++++++++++++++++++++++++ ...
- JVM ,JIT ,GC RUNTIME 解析
Java Class字节码知识点回顾 https://yq.aliyun.com/articles/2358?spm=5176.8067842.tagmain.105.fQdvH3 JVM Class ...
- jQuery return false
在jQuery代码中,我们常见用return false来阻止浏览器的默认行为.例如点击链接,浏览器默认打开一个新窗口/标签,为了阻止浏览器的默认行为,我们往往这样操作: $("a.togg ...