Leetcode Anagrams

来源:互联网 发布:微信商城端口什么意思 编辑:程序博客网 时间:2024/06/06 07:49

题目:

Given an array of strings, return all groups of strings that are anagrams.

Note: All inputs will be in lower-case.

代码如下:

#include <iostream>#include <vector>#include <map>#include <algorithm> sort#include <string>using namespace std;vector <string> anagrams(vector <string> &strs){vector <string> ret;map <string,vector <const string *>> map_anagrams;for(vector <string> ::iterator itr=strs.begin();itr!=strs.end();itr++){string key(*itr);sort(key.begin(),key.end());map_anagrams[key].push_back(&*itr);}for(map <string,vector<const string *>> ::iterator mitr=map_anagrams.begin();mitr!=map_anagrams.end();mitr++){if(mitr->second.size()>1){for(vector<const string *>::iterator itr=mitr->second.begin();itr!=mitr->second.end();itr++)ret.push_back(**itr);}}return ret;}void print(vector<string >&str){for(vector<string>::iterator itr=str.begin();itr!=str.end();itr++)cout<<*itr<<'\t';}int main(){string s[7]={"abc","cba","bca","ad","da","123","1"};vector <string> strs(s,s+7);vector <string> ret;ret=anagrams(strs);print(ret);//system("PAUSE");return 0;}

运行结果:


0 0
原创粉丝点击