[Leetcode] Anagrams
来源:互联网 发布:池州安广网络安装人员 编辑:程序博客网 时间:2024/06/05 16:02
题目:
Given an array of strings, return all groups of strings that are anagrams.
Note: All inputs will be in lower-case.
思路:利用一个map记录。因为当一个字符串第一次出现时,并不知道是否可以和后面的字符串构成anagram,因此先将它放入map。当后面发现有可以构成anagram的字符串时,检查第一个字符串是否放入,若没有,放入即可。判断是否构成anagram的方法是利用sort,然后判断是否相等。
class Solution {public: vector<string> anagrams(vector<string> &strs) { unordered_map<string, int> record; vector<string> result; for (int i = 0; i < (int)strs.size(); ++i) { string temp = strs[i]; sort(temp.begin(), temp.end()); unordered_map<string, int>::iterator it = record.find(temp); if (it == record.end()) { record.insert(make_pair(temp, i)); } else { if (it->second != -1) { result.push_back(strs[it->second]); it->second = -1; } result.push_back(strs[i]); } } return result; }};
总结:复杂度O(n).
0 0
- LeetCode: Anagrams
- LeetCode: Anagrams
- LeetCode Anagrams
- Leetcode: Anagrams
- [Leetcode] Anagrams
- LeetCode : Anagrams
- [leetcode] anagrams
- LeetCode Anagrams
- [LeetCode] Anagrams
- [LeetCode]Anagrams
- [leetcode]Anagrams
- leetcode anagrams
- [leetcode] Anagrams
- LeetCode-Anagrams
- LeetCode - Anagrams
- Leetcode: Anagrams
- 【Leetcode】Anagrams
- LeetCode Anagrams
- 每天记录一点点
- Binary Tree Inorder Traversal
- [ALSA学习]在ARM上遇到的问题
- 1623
- 并行计算的问题---Failed to open matlabpool
- [Leetcode] Anagrams
- Emmet基本语法
- 在XML中添加实体
- linkin大话设计模式--命令模式
- php远程下载图片
- Git(三):添加与提交
- 一张图让你明白SQL各种连接
- 风中追风,HTML
- sqoop