当前位置: 首页 > news >正文

外贸公司如何做公司网站网站建设+设计那种连接线厂家

外贸公司如何做公司网站,网站建设+设计那种连接线厂家,WordPress做大站,上海网站建设维护2.字母异位词分组 题目描述: 给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 字母异位词 是由重新排列源单词的所有字母得到的一个新单词。 示例 1: 输入: strs ["eat", "tea", "tan&q…

2.字母异位词分组

题目描述:

给你一个字符串数组,请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。

字母异位词 是由重新排列源单词的所有字母得到的一个新单词。

示例 1:

输入: strs = 
["eat", "tea", "tan", "ate", "nat", "bat"]
输出:
 [["bat"],["nat","tan"],["ate","eat","tea"]]

给定的是vector<string>类型的容器,输出的是vector<vector<string>>类型的容器。

class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {unordered_map<string,vector<string>> anagrams;for(const string& str:strs){string sortedstr = str;sort(sortedstr.begin(),sortedstr.end());anagrams[sortedstr].emplace_back(str);}vector<vector<string>> result;for(const auto&pair:anagrams){result.emplace_back(pair.second);}return result;
}
};

实现逻辑:使用for循环遍历strs,对每一个strs[i]对应的单词进行sort排序,如tea和eat都会被排序为aet,对每个单词排序后的结果作为键,如果该键不存在于哈希表中,则创建新元素<key,value>,如果键已存在,则将新单词加入键所对应的vector中,比如开始遍历实例中给的vector容器时,eat和tea经过排序后,都对应aet这个键,遍历eat时,哈希表中开始创建了<aet,{eat}>,当遍历到tea时,哈希表就成了<aet,{eat,tea}>。而后再对遍历完所有strs后的哈希表进行遍历,将其所有元素中存在的值都加入result中,最后result就会成为[["bat"],["nat","tan"],["ate","eat","tea"]]的形式,那么只需返回result就行。

代码解释

unordered_map<string,vector<string>> anagrams;创建string,vector<string>类型的哈希表anagrams;

for(const string& str:strs)使用for循环对strs中的每一个元素都取别名,const string& str:strs是C++中对容器元素进行遍历的代码。

sort(sortedstr.begin(),sortedstr.end());使用sort对sortedstr进行排序,这里是把sortedstr也当作了一个容器,不过是char类型,按照begin()和end()迭代器作为sort的起始和终结条件。如果sortedstr对应eat,排序后,它就成为aet。

anagrams[sortedstr].emplace_back(str);,按照键:sortedstr往哈希表中插入元素str,其实此时sortedstr也就是str所对应的排序好后的键,string sortedstr = str;这也就是为什么要加这一句代码。

----anagrams[sortedstr]:首先尝试在 anagrams 哈希表中查找键为 sortedstr 的元素。如果找到,则返回该键对应的 vector<string>;如果没有找到,则会创建一个新的 vector<string> 并将其与 sortedstr 键关联起来,然后返回这个新的向量。

----.emplace_back(str):这是在向由 anagrams[sortedstr] 返回的向量中添加元素的一种方式。emplace_back() 方法与push_back() 方法类似,都是向容器末尾添加元素。但是,emplace_back() 更加高效,因为它是在容器的末尾直接构造对象,而不是先创建对象再复制或移动它进入容器。这意味着如果 emplace_back() 的参数正好匹配要插入元素的构造函数参数,则可以直接在容器的存储空间上进行构造,避免不必要的拷贝或移动操作。

unordered_map<string,vector<string>>  类型的容器 anagrams。这里的pair 实际上代表 anagrams 中的每一个键值对(即每一个元素),其中 pair.first 对应键(在这个场景下是排序后的字符串),而 pair.second 对应值(即一组异位词组成的 vector<string>)。比如经过前面的代码,那么anagrams中元素的存在形式可能是这样的 [{abt,["bat"]},{ant,["nat","tan"]},{aet,["ate","eat","tea"]}],那么每一次遍历pair.second就对应着["bat"]、["nat","tan"]、["ate","eat","tea"]这几个容器。,而后将其插入至result中。

最后将result返回即可。

http://www.yayakq.cn/news/73519/

相关文章:

  • 昆山市建设工程质量检测中心网站住房新建网站
  • 做网站使用明星照片可以吗盗取wordpress源码
  • 湖北省随州市建设厅网站如何在亚马逊开店
  • 武安专业做网站网站登录人数实时更新如何做
  • 个人网站的建设与管理怎样成为网络营销的主管
  • 无线路由器做中继手机能连接但无法访问网站wordpress近期评论
  • 网站建设lnmp优化人员是什么意思
  • 网站建设专家哪家强站长网站
  • 免费网站建站+凡科建站前端开发招聘要求
  • 国际设计师网站张雪峰谈广告学就业
  • 做外贸网站那个好seo观察网
  • 如何免费推广网站北理离线《网站开发与应用》
  • 那个公司搭建网站可以接项目做的网站
  • 网站开发工作好吗app网站样式
  • 京东网站开发费用网站风格的设计原则
  • 如何来做网站优化伊利集团的网站建设水平评价
  • 昆明网站建设php潍坊市建设局门户网站
  • 深圳装饰公司网站外贸营销邮件主题一般怎么写
  • 可以刮刮卡的网站广州互联网广告推广
  • 育儿网网站开发建设信息港
  • 打开百度竞价页面是网站是什么济宁网站建设哪家便宜
  • 网站突然掉排名php编程软件中文
  • 那曲做网站网站开发维护合同
  • 做网站asp百度高搜
  • 景德镇网站维护南京最好的网站设计公司
  • 网站制作公司电话做网站公司赚不赚钱
  • 做的漂亮的商务网站西安网站建设开发查派
  • 晋江企业网站开发wordpress主页登录注册
  • 模板网站对排名的影响郯城地建设局网站
  • 写作网站哪个好用wordpress 当前时间