解題思路
anagram 經過 sort 後會長的一樣,用這個特性以 map 與 vector 紀錄,再轉成指定的型態回傳。
程式碼
class Solution {
public:
vector<vector<string>> groupAnagrams(vector<string>& strs) {
unordered_map<string, vector<int>> mp; // word -> index
string s;
for(int i=0; i<strs.size(); i++)
{
s = strs[i];
sort(s.begin(), s.end());
mp[s].push_back(i);
}
vector<vector<string>> ans;
for(auto word : mp)
{
vector<string> v;
for(int i=0; i<word.second.size(); i++)
{
v.push_back(strs[word.second[i]]);
}
ans.push_back(v);
}
return ans;
}
};
沒有留言:
張貼留言