首页 > 代码库 > Anagrams
Anagrams
Anagrams
Given an array of strings, return all groups of strings that are anagrams.
Note: All inputs will be in lower-case.
anagrams特点:单词里的字母的种类和数目是一样的,只是改变了字母的排列顺序。
1 class Solution 2 { 3 public: 4 vector<string> anagrams(vector<string> &strs) 5 { 6 vector<string> ret; 7 vector<string> sort_strs(strs); 8 map<string, vector<int> > mymap; 9 map<string, vector<int> >::iterator it;10 11 for(int i=0; i<strs.size(); i++)12 {13 sort(sort_strs[i].begin(), sort_strs[i].end()); //对字符串进行排序,使得属于同一类回文构词的词具有相同的字符串。14 mymap[sort_strs[i]].push_back(i); //利用map不会插入同一主键的原则,统计字符串种类数,并记录字符串在原始strs中的位置。15 }16 17 for(it=mymap.begin(); it!=mymap.end(); it++) //遍历统计结果18 {19 if((*it).second.size()>1) //字符串出现的次数为两次以上,则它所对应的原始字符串符合题目要求。20 {21 for(int i=0; i<(*it).second.size(); i++) //遍历该排序字符串出现在strs中的位置,得到原始字符串,压入ret。22 ret.push_back(strs[(*it).second[i]]);23 }24 }25 26 return ret;27 }28 };
Anagrams
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。