Given an array of strings, group anagrams together.
Example:
Input: ["eat", "tea", "tan", "ate", "nat", "bat"]
,
Output:
[
["ate","eat","tea"],
["nat","tan"],
["bat"]
]
class Solution
{
public:
vector<vector<string>> groupAnagrams(vector<string>& strs)
{
vector<vector<string>> str;
vector<string> sty(strs); // 排过序的字符串
vector<int> vec(sty.size()); //记录搜过的字符串
vector<string> st; //.临时存放一组字符串的数组
for(int i=0; i<sty.size(); i++) {
sort(sty[i].begin(),sty[i].end());
vec[i]=1;
}
for(int i=0; i<sty.size()-1; i++) {
for(int j=i+1; j<sty.size(); j++) {
if(vec[j]&&vec[i]&&sty[i]==sty[j]) {
st.push_back(strs[j]);
vec[j]=0;
}
}
if(vec[i]) {
st.push_back(strs[i]);
vec[i]=0;
}
if(st.size()==0) {
continue;
}
str.push_back(st);
st.clear();
}
if(vec[sty.size()-1]==0) ;
else {
st.push_back(strs[strs.size()-1]);
str.push_back(st);
}
return str;
}
};