3.13 Anagrams
来源:互联网 发布:深圳网络安防培训学校 编辑:程序博客网 时间:2024/04/27 03:12
Notes: Given an array of strings, return all groups of strings that are anagrams. Note: All inputs will be in lower-case. Solution: Sort the string to see if they're anagrams. Solution 1 is simpler than 2. */
class Solution {public: vector<string> anagrams(vector<string> &strs) { return anagrams_1(strs); } // solution 1 vector<string> anagrams_1(vector<string> &strs) { typedef map<string, vector<int> > MAP; MAP map; for (int i = 0; i < strs.size(); ++i) { string s = strs[i]; sort(s.begin(), s.end()); map[s].push_back(i); } vector<string> res; MAP::iterator it = map.begin(); for (; it != map.end(); it++) { vector<int> &anagrams = it->second; if (anagrams.size() > 1) { for (int i = 0; i < anagrams.size(); ++i) res.push_back(strs[anagrams[i]]); } } return res; } // solution 2 vector<string> anagrams_2(vector<string> &strs) { typedef unordered_map<string, int > MAP; vector<string> res; MAP anagram; for (int i = 0; i < strs.size(); ++i) { string s = strs[i]; sort(s.begin(), s.end()); MAP::iterator it = anagram.find(s); if (it == anagram.end()) { anagram[s] = i; } else { if (it->second >= 0) { res.push_back(strs[it->second]); it->second = -1; } res.push_back(strs[i]); } } return res; }};
0 0
- 3.13 Anagrams
- 3.13 Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- Anagrams
- anagrams
- Anagrams
- Spark MLlib Deep Learning Neural Net(深度学习-神经网络)1.1
- js和jsp的执行顺序
- GeoServer和MapServer的对比[转]
- 高仿支付宝手势解锁(增强版)
- 输入输出XML和YAML文件
- 3.13 Anagrams
- C++ 窗口设计 实践项目2 个人所得税计算器
- Android 禁止横竖屏切换
- 插件开发技术说明(7)---读插件配置
- 基数估计算法
- node.js 自带的各种模块
- 网络基本知识详解
- JAR混淆调用资源
- C之信号量操作