LeetCode 49. 字母异位词分组(Group Anagrams)
2024-09-03 14:44:02
题目描述
给定一个字符串数组,将字母异位词组合在一起。字母异位词指字母相同,但排列不同的字符串。
示例:
输入:["eat", "tea", "tan", "ate", "nat", "bat"]
,
输出:
[
["ate","eat","tea"],
["nat","tan"],
["bat"]
]
说明:
- 所有输入均为小写字母。
- 不考虑答案输出的顺序。
解题思路
利用哈希的思想解题。构造一个字符串到字符串集合的映射数组map,对于每一个字符串,首先对其按字典序从小到大排序,这样有相同字母的异位词就可以映射为同一字符串,然后在map中找到对应的集合并添加原字符串。遍历完给定的字符串数组后,再依次把map中的分组添加到结果集合中。
代码
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
vector<vector<string>> res;
map<string, vector<string>> strToVec;
for(string str: strs){
string emp = str;
sort(emp.begin(), emp.end());
strToVec[emp].push_back(str);
}
for(auto iter: strToVec)
res.push_back(iter.second);
return res;
}
};
最新文章
- 微博开放平台api使用
- java 重载、重写、构造函数详解
- 在MAC OS X上如何启用crontab?
- How to override create,write,unlink method in Odoo v8
- 由单例模式学到:Lazy<;T>;
- [iOS基础控件 - 6.10.1] PickerView 餐点搭配Demo
- 《MFC游戏开发》笔记二 建立工程、调整窗口
- [置顶] 推荐12款很棒的HTML5开发框架和开发工具
- 序列化layer创建的弹出表单并ajax提交
- 远程代码仓库URL地址变更后本地仓库的配置方法
- MSSQL优化之————探索MSSQL执行计划
- async、await在ASP.NET[ MVC]中之线程死锁的故事
- Delphi for iOS开发指南(3):创建一个FireMonkey iOS应用程序
- EF多个上下文迁移
- ubuntu16.04 安装symfony3.3.11 碰到的问题:extension dom is required | oops an error occurred 500
- spring_150902_hibernatedaosupport
- Windows搭建python开发环境[一]
- 数据库case,when学习
- windows测试模式
- SecureCRT中的vim出现1H特殊字符
热门文章
- 虚拟机无法启动,提示:无法打开内核功能扩展“com.vmware.kext.vmci”: 无此文件或目录
- oracle重置dba用户密码
- MySQL查询一张表有多少个字段
- python、第六篇:视图、触发器、事务、存储过程、函数
- 第十篇.2、python并发编程之多进程
- poj 1953 World Cup Noise (dp)
- orace result cache解析
- A Neural Probabilistic Language Model (2003)论文要点
- 使用putty对linux与windows之间的文件传输
- java将一数组乱序排列