LeetCode 热题100——49.字母异位词分组
题目给你一个字符串数组请你将 字母异位词 组合在一起。可以按任意顺序返回结果列表。示例 1:输入:strs [eat, tea, tan, ate, nat, bat]输出:[[bat],[nat,tan],[ate,eat,tea]]解释在 strs 中没有字符串可以通过重新排列来形成bat。字符串nat和tan是字母异位词因为它们可以重新排列以形成彼此。字符串ateeat和tea是字母异位词因为它们可以重新排列以形成彼此。示例 2:输入:strs []输出:[[]]示例 3:输入:strs [a]输出:[[a]]提示1 strs.length 10^40 strs[i].length 100strs[i]仅包含小写字母题解核心要点两个字符串是字母异位词当且仅当它们排序后的结果完全相同。例如 eat 和 tea 排序后都是 aet。算法步骤1.创建一个哈希表 unordered_mapstring, vectorstring mp键为排序后的字符串值为原始字符串的列表。2.遍历输入数组中的每个字符串 str3.复制一份到 key并对 key 进行排序。4.将原始字符串 str 加入到 mp[key] 对应的列表中。5.遍历哈希表将每个 vectorstring即一组字母异位词加入到结果 ans 中。6.返回 ans。答案class Solution { public: vectorvectorstring groupAnagrams(vectorstring strs) { unordered_mapstring,vectorstring mp; for(auto str:strs){ string keystr; sort(key.begin(),key.end());//排序后得到键 mp[key].push_back(str);//将原始字符串加入对应组 } vectorvectorstring ans; for(auto itmp.begin();it!mp.end();it){ ans.push_back(it-second); } return ans; } };
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2476743.html
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!