LeetCode49 Group Anagrams
2024-10-05 09:19:50
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. (Medium)
分析:
一个简单的思路,就是把每个string赋上其在数组中的位置组成一个结果(保留位置信息)。
然后对每个string排序,再对所有string以字典序排序使得一样的string相邻。
最后走一遍循环, 把一样的string对应的原vector中的string添加到结果中即可。
代码:
class Solution {
struct node{
string str;
int num;
node(string s, int n):str(s),num(n){}
bool operator< (const node& n2) const{
return str < n2.str;
}
};
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
vector<node> v;
for (int i = ; i < strs.size(); ++i) {
v.push_back(node(strs[i],i));
}
for (int i = ; i < v.size(); ++i) {
sort(v[i].str.begin(), v[i].str.end());
}
sort(v.begin(), v.end());
vector<vector<string>> result;
vector<string> temp;
temp.push_back(strs[v[].num]);
for (int i = ; i < v.size(); ++i) {
if (v[i].str == v[i - ].str) {
temp.push_back(strs[v[i].num]);
}
else {
result.push_back(temp);
temp.clear();
temp.push_back(strs[v[i].num]);
}
}
result.push_back(temp);
return result;
}
};
最新文章
- asp.net 各种路径
- [ASP.NET MVC] 使用Bootstrap套件
- JavaScript一个经典问题
- Generic Netlink详解
- vs2010编译lua-5.3.2
- 统一入口的Ajax验证
- 【MySql】性能优化之分析命令
- Python之Tkinter模块学习
- datatable的数据转置
- ASP.NET MVC 5 学习教程:数据迁移之添加字段
- redis远程连接报错记录
- Linux(CentOS 7.0)安装Oracle11g R2
- Pycharm+Anaconda安装及配置
- sql server 主从库设计和数据库镜像设计
- websphere设置企业应用使用的jvm最大最小内存
- fastAdmin根据状态显示是否显示操作按钮
- RSA算法工具
- Android-帧布局(FrameLayout)
- 支付机构MRC模
- [Visual studio code 常见问题解决] ——中文乱码、
热门文章
- MYSQL数据库性能调优之五:解决慢查询--存储引擎与数据类型
- JS中如何判断null、undefined与NaN
- POJ3253Fence Repair(优先队列或单调队列)
- wikioi 1083 Cantor表
- JavaScript的因为所以
- Hadoop on Mac with IntelliJ IDEA - 10 陆喜恒. Hadoop实战(第2版)6.4.1(Shuffle和排序)Map端 内容整理
- 广州项目实施步骤III_练习使用Keepalive保证HaProxy的高可用性
- 【MongoDB】mongoimport and mongoexport of data (一)
- android设置动态壁纸 (Wallpaper) 介绍
- Topcomponent --sighoff