码迷,mamicode.com
首页 > 其他好文 > 详细

[LeetCode系列] 变序词查找问题(Anagrams)

时间:2014-09-15 19:21:29      阅读:231      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   使用   for   div   问题   sp   

给定一系列词, 找出其中所有的变序词组合.

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)

标签:style   blog   color   io   使用   for   div   问题   sp   

原文地址:http://www.cnblogs.com/lancelod/p/3973371.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!