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的更多相关文章

  1. LeetCode - 49. Group Anagrams

    49. Group Anagrams Problem's Link ------------------------------------------------------------------ ...

  2. 刷题49. Group Anagrams

    一.题目说明 题目是49. Group Anagrams,给定一列字符串,求同源词(包含相同字母的此)的集合.题目难度是Medium. 二.我的做法 题目简单,就不多说,直接上代码: class So ...

  3. 49. Group Anagrams - LeetCode

    Question 49. Group Anagrams Solution 思路:维护一个map,key是输入数组中的字符串(根据字符排好序) Java实现: public List<List&l ...

  4. leetcode@ [49] Group Anagrams (Hashtable)

    https://leetcode.com/problems/anagrams/ Given an array of strings, group anagrams together. For exam ...

  5. 【LeetCode】49. Group Anagrams

    题目: Given an array of strings, group anagrams together. For example, given: ["eat", " ...

  6. 【一天一道LeetCode】#49. Group Anagrams

    一天一道LeetCode系列 (一)题目 Given an array of strings, group anagrams together. For example, given: [" ...

  7. [leetcode]49. Group Anagrams变位词归类

    Given an array of strings, group anagrams together. Example: Input: ["eat", "tea" ...

  8. LeetCode OJ 49. Group Anagrams

    题目 Given an array of strings, group anagrams together. For example, given: ["eat", "t ...

  9. 49. Group Anagrams (string, HashTable)

    Given an array of strings, group anagrams together. For example, given: ["eat", "tea& ...

随机推荐

  1. 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 ...

  2. poj 1260 dp

    Description In Pearlania everybody is fond of pearls. One company, called The Royal Pearl, produces ...

  3. smartUpload组件文件上传

    public class SmartUploadServlet extends HttpServlet { public void doGet(HttpServletRequest request, ...

  4. JavaWeb学习记录(二十七)——定时发送邮件ServletContextListener监听实现

    public class EmailSendListener implements ServletContextListener{ @Override    public void contextDe ...

  5. 3-4 rpm包查询

    概述:yum不能查询已经安装好的rpm包, 就算采用了yum来进行安装,查询方法还是依赖rpm包的查询, 因此rpm包的查询十分常用和重要 1.查询是否安装 <1>rpm -q 包名(不是 ...

  6. phpwind数据同步本地后登陆异常

    在讲数据同步到本地之后,发现输入用户名和密码之后点击登陆,依然会返回到之前的页面,并且显示的还是未登录的状态. 解决办法:在后台中将:站点设置--cookie作用域留空即可.

  7. Linux下串口与工业协议的开发

    1.串口通信原理 串口通信定义 串口通信:数据的串行传送方式.串口通信可分为同步通信与异步通信. 同步通信:按照软件识别同步字符来实现数据的发送和接收. 将许多字符组成一个信息组进行发送 要求发送时钟 ...

  8. linux下Redis与phpredis扩展安装

    ++++++++++++++++++++++++++++++++++++++++++++++linux下Redis与phpredis扩展安装++++++++++++++++++++++++++++++ ...

  9. JVM ,JIT ,GC RUNTIME 解析

    Java Class字节码知识点回顾 https://yq.aliyun.com/articles/2358?spm=5176.8067842.tagmain.105.fQdvH3 JVM Class ...

  10. jQuery return false

    在jQuery代码中,我们常见用return false来阻止浏览器的默认行为.例如点击链接,浏览器默认打开一个新窗口/标签,为了阻止浏览器的默认行为,我们往往这样操作: $("a.togg ...