同服务器网站查询工具福州高端品牌网站建设
2026/2/21 21:21:58 网站建设 项目流程
同服务器网站查询工具,福州高端品牌网站建设,广告网站建设报价,网站是怎么制作的题目介绍 给你一个字符串数组#xff0c;请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。 提示#xff1a; 1 strs.length 1040 strs[i].length 100strs[i] 仅包含小写字母 class Solution { public:vectorvectorstring…题目介绍给你一个字符串数组请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。提示1 strs.length 1040 strs[i].length 100strs[i]仅包含小写字母class Solution { public: vectorvectorstring groupAnagrams(vectorstring strs) { } };全文核心1400字阅读思考8min原题链接49. 字母异位词分组 - 力扣LeetCode解析1 . 本题需求很明确给你一个字符串数组。对于其中相同字母排列组合组合成的字符串归为一组。2 . 很自然的结果要求返回一个二维数组。不难想其元素则是一组一组“字母异位词”3 . 初拿到此题不由想难道我们要通过递归每个字符串去得出每个字符串的各种排列组合……4 . 再去统计哪些组合出现再整合5 . 未免想复杂了这只是个分类工作哈希1 . 你可能会好奇怎么就突然用上——“哈希”请听接下来的分析2 . 首先清楚此处的核心需求材料都已经给你vectorstring strs3 . 我们需要做的只是将它们分类按照一定标准把几个字符串分为一个数组。最后许多个数组合成一个大的数组4 . 返回这个二维数组5 . 而这个“一定标准”是什么呢比如nat和tan凭什么分为一组而“ate”、eat和tea凭什么分为一组不难发现它们都有相同的字母组成一个不多一个不少——只是顺序不同6 . 而让看起来顺序不一样的字母串归在一类首先让它们展示出共性for(auto e : strs) { string key e; sort(key.begin(),key.end()); // 对key原地排序nat和tan必然展示出共性—— ant }7 . 既然有了分类标准就应该开始分类8 . 本题要求返回一个二维数组——“万丈高楼平地起”必然先得把一维数组准备好9 . 不如让key作为一个指标它对应映射一组由key排列组合的单词10 . 结构unordered_mapstring,vectorstringclass Solution { public: vectorvectorstring groupAnagrams(vectorstring strs) { std::unordered_mapstring,vectorstring mp; for(auto e: strs) { string key e; sort(key.begin(),key.end()); mp[key].push_back(e);// 展现出共性后把当前的e往key组塞 } } };注字符串少拷贝使用for(auto e: strs)11 . 现在mp已经有许多组 key , vectorstring12 . 还记得要求返回二维数组吗那么不难想到最终结果集就是mp里的vectorstring组合起来成为的二维数组13 . 那还等什么遍历mp把每一组的vectorstring作为元素放进ret数组里vectorvectorstring vv; for(auto it:mp) // 这里的it 为 pairstring,vectorstring { vv.push_back(it.second); }完整代码class Solution { public: vectorvectorstring groupAnagrams(vectorstring strs) { // 分类 std::unordered_mapstring,vectorstring mp; for(auto e: strs) { string key e; sort(key.begin(),key.end()); mp[key].push_back(e); } // 整合 vectorvectorstring vv; for(auto it:mp) { vv.push_back(it.second); } return vv; } };总结以及完整参考代码class Solution { public: vectorvectorstring groupAnagrams(vectorstring strs) { // 分类 std::unordered_mapstring,vectorstring mp; for(auto e: strs) { string key e; sort(key.begin(),key.end()); mp[key].push_back(e); } // 整合 vectorvectorstring vv; for(auto it:mp) { vv.push_back(it.second); } return vv; } };

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询