Leetcode Anagrams

把每个string按字母排个序,然后就能很方便的进行string的两两比较

class Solution {
 private:
     vector<string> ret;
     map<string, vector<string> > m;
 public:
     vector<string> anagrams(vector<string> &strs) {
         ret.clear();
         m.clear();
         for(int i = 0; i < strs.size(); i++)
         {
             string sortStr(strs[i]);
             sort(sortStr.begin(), sortStr.end());           
             m[sortStr].push_back(strs[i]);
         }    
         for(map<string, vector<string> >::iterator iter = m.begin(); iter != m.end(); iter++)
         {
             if ((iter->second).size() > 1)
             {
                 for(int i = 0; i < (iter->second).size(); i++)
                     ret.push_back((iter->second)[i]);
             }
         }
         return ret;
     }
 };

 

posted @ 2013-05-07 19:09  代码改变未来  阅读(156)  评论(0编辑  收藏  举报