diff --git a/49_group_anagrams/main.cpp b/49_group_anagrams/main.cpp new file mode 100644 index 0000000..92282ba --- /dev/null +++ b/49_group_anagrams/main.cpp @@ -0,0 +1,28 @@ +#include +using namespace std; + +class Solution { + public: + vector> groupAnagrams(vector& strs) { + unordered_map> anagrams; + + for (auto& str : strs) { + string originalStr(str); + sort(str.begin(), str.end()); + + auto iter = anagrams.find(str); + if (iter == anagrams.end()) { + anagrams.insert({str, {originalStr}}); + } else { + iter->second.emplace_back(originalStr); + } + } + + vector> result; + for (auto& [key, value] : anagrams) { + result.emplace_back(value); + } + + return result; + } +};