首页 > 代码库 > [LeetCode系列] 变序词查找问题(Anagrams)
[LeetCode系列] 变序词查找问题(Anagrams)
给定一系列词, 找出其中所有的变序词组合.
Note: 变序词 - 组成字符完全相同但次序不同的单词. 如dog和god, ate和eat.
算法描述: 使用map<string, vector<string> >存储所有的结果. 最后将map中size > 1的vector<string>插入到结果中.
代码:
1 class Solution { 2 public: 3 vector<string> anagrams(vector<string> &strs) { 4 vector<string> res; 5 map<string, vector<string> > rec; 6 if (strs.size() == 0) return res; 7 8 for (string s : strs) { 9 string ts(s);10 sort(ts.begin(), ts.end());11 rec[ts].push_back(s);12 }13 14 for (auto map : rec) {15 if (map.second.size() > 1)16 res.insert(res.end(), map.second.begin(), map.second.end());17 }18 19 return res;20 }21 };
其中map.second代表的是map中的value, 即vector<string>.
[LeetCode系列] 变序词查找问题(Anagrams)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。