博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
leetcode Group Anagrams
阅读量:5332 次
发布时间:2019-06-14

本文共 1381 字,大约阅读时间需要 4 分钟。

题目连接

  

Group Anagrams

Description

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: 
For the return value, each inner list’s elements must follow the lexicographic order. 
All inputs will be in lower-case. 

以一种奇怪的方式水过去了... __(:з」∠)__

class Solution {public:	vector
> groupAnagrams(vector
& strs) { if (!strs.size()) return ans; int n = strs.size(); vector
*ret = new vector
[n]; for (int i = 0; i < n; i++) { string x = strs[i]; sort(x.begin(), x.end()); if (vis.find(x) == vis.end()) { vis[x] = i, index.insert(i); ret[i].push_back(strs[i]); } else { int v = vis[x]; vis[strs[i]] = v; ret[v].push_back(strs[i]); } } for (set
::iterator i = index.begin(); i != index.end(); ++i) { sort(ret[*i].begin(), ret[*i].end()); ans.push_back(ret[*i]); } sort(ans.begin(), ans.end(), cmp()); delete []ret; return ans; }private: struct cmp { bool operator()(const vector
&A, const vector
&B) { int m = (int)A.size(), n = (int)B.size(); return n == m ? A[0] > B[0] : (bool)(n > m); } }; set
index; unordered_map
vis; vector
> ans;};

转载于:https://www.cnblogs.com/GadyPu/p/5040135.html

你可能感兴趣的文章
Safety Interval Upper/Lower Limit of a Delta Selection(2)
查看>>
使用 create 命令建立数据库v, 并利用sp_helpdb查看数据库文件
查看>>
机器学习基石(3)--Types of Learning
查看>>
防火墙
查看>>
谷歌官方SwipeRefreshLayout下拉刷新的用法。
查看>>
SQL On Hadoop 设计的一个基本原则是:将计算任务移动到数据所在的节点而不是反过来...
查看>>
Java控制台输入
查看>>
c++读写文件流(转)
查看>>
windows下bat批处理实现守护进程(转)
查看>>
多年iOS开发经验总结
查看>>
The Dole Queue UVA - 133
查看>>
bzoj 1741: [Usaco2005 nov]Asteroids 穿越小行星群【最大点覆盖】
查看>>
解决CentOS 7.0 VMware虚拟机没有网卡
查看>>
实用的圆形图片控件ImageView
查看>>
最详细的Log4j使用教程
查看>>
Java解压上传zip或rar文件,并解压遍历文件中的html的路径
查看>>
希尔排序算法
查看>>
redis + cookies 实现持久登入
查看>>
解决XP系统任务管理器显示不全
查看>>
Papers
查看>>