[LeetCode] Anagrams
来源:互联网 发布:json字符串解析 编辑:程序博客网 时间:2024/06/01 08:19
Sort each string as the key to the map.
Bucket sort:
class Solution {public: vector<string> anagrams(vector<string> &strs) { map<string, vector<string> > dict; vector<string> result; for(int i=0;i<strs.size();i++) { string key = sortChars(strs[i]); dict[key].push_back(strs[i]); } for(map<string,vector<string> >::iterator it = dict.begin(); it!=dict.end();it++) { if((it->second).size()>1) { for(int j=0;j<(it->second).size();j++) result.push_back((it->second)[j]); } } return result; } string sortChars(string str) { int char_set[26]={0}; for(int i=0;i<str.length();i++) { char_set[str[i]-'a']++; } string res=""; for(int i=0;i<26;i++) { char c = 'a' + i; for(int j=0;j<char_set[i];j++) res = res + c; } return res; }};
Or we can use the built-in quick sort
class Solution {public: vector<string> anagrams(vector<string> &strs) { map<string, vector<int>> group; map<string, vector<int>>:: iterator git; vector<string> tmp(strs); vector<string>::iterator itr; for(itr=tmp.begin();itr!=tmp.end();itr++) { sort((*itr).begin(),(*itr).end()); } int index=0; for(itr=tmp.begin();itr!=tmp.end();itr++,index++) { group[*itr].push_back(index); } vector<string> result; for(git=group.begin();git!=group.end();git++) { int cnt=(git->second).size(); if(cnt>1) { for(int i=0;i<cnt;i++) result.push_back(strs[git->second[i]]); } } return result; }};
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
- Single Number II - LeetCode
- 对网络的一些感悟
- ADB server didn't ACK
- Maximum Subarray - LeetCode
- Merge Sorted Array - LeetCode
- [LeetCode] Anagrams
- Reverse Nodes in k-Group -- LeetCode
- LeetCode Matrix Summary
- Linux文件系统预读(二)
- Add Two Numbers -- LeetCode
- Reverse linked list
- [LeetCode] Balanced Binary Tree
- asp.net输出重写压缩页面文件人代码
- Highchart legend属性 实现翻页显示效果,解决legend过长