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:

  1. For the return value, each inner list's elements must follow the lexicographic order.
  2. All inputs will be in lower-case.

思路:

anagram: 由颠倒字母而成的单词

anagram无关乎字母出现的顺序,所以将字母排序后再比较每个字母出现的次数

class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
if (strs.size() <= ) return result; vector<vector<string>> result;
map<string,int> anagram;
int resIndex = ;
string s; for (int i = ; i < strs.size(); ++i)
{
s = strs[i];
sort(s.begin(), s.end()); //anagram无关乎字母顺序,所以将string按字母排序后再比较
if (anagram.find(s) == anagram.end()) { //如果还没有出现过该anagram
vector<string> item;
item.push_back(strs[i]);
result.push_back(item);
anagram.insert(make_pair(s, resIndex++));
} else {
result[anagram[s]].push_back(strs[i]);
}
} //each inner list's elements must follow the lexicographic order
for(int i = ; i < result.size(); i++){
sort(result[i].begin(), result[i].end());
}
return result;
}
};

49. Group Anagrams (string, HashTable)的更多相关文章

  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. 49. Group Anagrams

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

  6. 【LeetCode】49. Group Anagrams

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

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

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

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

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

  9. LeetCode OJ 49. Group Anagrams

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

随机推荐

  1. 二叉树的基本功能实现方法(C++)

    假设:有一个n个元素的完全二叉树,为了使其成为满二叉树,补全没有孩子的节点是的除了叶节点所有节点都有两个孩子,即最低层皆为-1. 例1: 1 2   3 4 5 -1 6 -1  -1     -1 ...

  2. js:关闭当前页面

    var userAgent = navigator.userAgent; if (userAgent.indexOf("Firefox") != -1 || userAgent.i ...

  3. 量化分析:把Tushare数据源,规整成PyalgoTrade所需格式

    量化分析:把Tushare数据源,规整成PyalgoTrade所需格式 分析A股历史数据,首先需要确定数据来源.如果只想做日k线.周k线的技术分析,可以用PyalgoTrade直接从yahoo.goo ...

  4. NAT 穿透

    /********************************************************************************* * NAT 穿透 * 说明: * ...

  5. linux 下的php_gd2.dll

    今天写验证码时,发现要配置php.ini,单不知在哪儿,用下面的办法可以解决. <?php phpinfo(); ?> 用vim搜索字符串时,发现一个命令特别好用 /字符串 就可以搜索到字 ...

  6. APScheduler - Advanced Python Scheduler

    简介 APScheduler:强大的任务调度工具,可以完成定时任务,周期任务等,它是跨平台的,用于取代Linux下的cron daemon或者Windows下的task scheduler. 内置三种 ...

  7. Swift学习——A Swift Tour 协议和扩展

    版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/zhenyu5211314/article/details/28854395 Protocols an ...

  8. CollabNet Subversion Edge 安装笔记(1):基本安装设定篇

    转载于:http://blog.miniasp.com/post/2011/12/30/CollabNet-Subversion-Edge-Installation-Notes-Part-1-Basi ...

  9. windows dos权限管理

    显示或者修改文件的访问控制列表(ACL) CACLS filename [/T] [/M] [/L] [/S[:SDDL]] [/E] [/C] [/G user:perm]              ...

  10. Spring Security3十五日研究(转载)

    前言 南朝<述异记>中记载,晋王质上山砍柴,见二童子下棋,未看完,斧柄已烂,下山回村,闻同代人都去世了,自已还未变老.    因此发出“山中方一日,世上几千年” 的慨叹.原文寥寥几笔,读来 ...