# 49. Group Anagrams ###### tags: `C++` `LeetCode` `Medium` ## Notes ``` 用 hash table 把易位構詞存在同一個 key 之下 ``` ## Code ```c++ #include <vector> #include <string> #include <algorithm> #include <unordered_map> #include "cout.h" vector<vector<string>> groupAnagrams(vector<string>& strs); int main() { vector<string> strs = {"eat", "tea", "tan", "ate", "nat", "bat"}; coutVectorVector(groupAnagrams(strs)); return 0; } vector<vector<string>> groupAnagrams(vector<string>& strs) { unordered_map<string, vector<string>> dict; vector<vector<string>> result; vector<string> anagrams; vector<string> v; string s; int stringNum = strs.size(); int anagramsNum = 0; for(int i = 0; i < stringNum; i++) { s = strs[i]; sort(s.begin(), s.end()); if(!dict.count(s)) { dict[s] = v; anagrams.push_back(s); } dict[s].push_back(strs[i]); } anagramsNum = anagrams.size(); for(int i = 0; i < anagramsNum; i++) { result.push_back(dict[anagrams[i]]); } return result; } ```
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up