题目链接

Group Anagrams - LeetCode

注意点

  • 字母都是小写的

解法

解法一:用一个字符串表示strs[i]中出现的字母,比如:abc->111000000000000000000000000aab->210000000000000000000000000。同时用map保存hash与vector的下标对应关系。时间复杂度O(n)

class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
vector<vector<string>> ret;
map<string,int> m;
if(strs.size() == 0) return ret;
int i,j,n = strs.size();
for(i = 0;i < n;i++)
{
string hash = "000000000000000000000000000";
for(j = 0;j < strs[i].size();j++)
{
hash[strs[i][j] - 'a']++;
}
cout << strs[i] << " " << hash << endl;
if(m.find(hash) == m.end())
{
vector<string> temp{strs[i]};
ret.push_back(temp);
m[hash] = ret.size()-1;
}
else
{
int index = m[hash];
ret[index].push_back(strs[i]);
}
}
return ret;
}
};

解法二:abcbac的区别只在于顺序不同,因此,只要对strs[i]排序之后进行比较即可。时间复杂度O(nlogn)。

class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
vector<vector<string>> ret;
unordered_map<string, vector<string>> m;
for (string str : strs) {
string t = str;
sort(t.begin(), t.end());
m[t].push_back(str);
}
for (auto a : m) {
ret.push_back(a.second);
}
return ret;
}
};

小结

  • 解法二的时间复杂度更高,但是所花时间更少...

最新文章

  1. 3.bootstrap练习笔记-媒体内容
  2. echarts X轴数据显示不全问题
  3. python模块结构和布局
  4. Hadoop学习过程知识积累
  5. KM算法专题
  6. 苹果Swift编程语言新手教程【中文版】
  7. 解决Nginx的connect() to 127.0.0.1:8080 failed (13: Permission denied) while connect
  8. JavaScript中的execCommand()命令详解及实例展示
  9. android项目实战 --ListView 头部ViewPager广告轮询图效果
  10. 流畅python学习笔记:第十七章:并发处理
  11. 逆波兰表达式(RPN)算法简单实现
  12. Django框架的安装
  13. Java数据结构和算法(十四)——堆
  14. volatile的适用场景
  15. Vue之v-for、v-show使用举例
  16. no plugin found for prefix &#39;tomcat 7&#39; in the current project
  17. Django:前后端分离后联调给前端传数据
  18. HRMS(人力资源管理系统)-SaaS架构设计-概要设计实践
  19. Stencil 基础
  20. 步步为营-35-SQL语言基础

热门文章

  1. LeetCode 刷题笔记 155. 最小栈(Min Stack)
  2. Linux文件句柄数调整
  3. 打包应用和构建Docker镜像(docker在windows上)
  4. spring-boot rabbitMq 完整项目搭建,包括创建、发送、监听
  5. Tomcat java zabbix 监控
  6. LeetCode 174. Dungeon Game (C++)
  7. pairwork(黄敬博12061156和黄伟龙12061172)
  8. BugPhobia开发篇章:Scurm Meeting-更新至0x03
  9. AloneQIan---第一次作业
  10. JavaScript实现大整数减法