diff --git a/49-valid-anagrams/driver.cpp b/49-valid-anagrams/driver.cpp new file mode 100644 index 0000000..33280b2 --- /dev/null +++ b/49-valid-anagrams/driver.cpp @@ -0,0 +1,31 @@ +#include "soln.hpp" + +int main() +{ + vector strs{"eat", "tea", "tan", "ate", "nat", "bat"}; + vector> answer; + answer.push_back(vector{"bat"}); + answer.push_back(vector{"nat", "tan"}); + answer.push_back(vector{"ate", "eat", "tea"}); + Solution soln; + vector> result = soln.groupAnagrams(strs); + cout << "Result set: " << endl; + for (vector strset : result) + { + for (string str : strset) + { + cout << str << " "; + } + cout << endl; + } + cout << "Answer set: " << endl; + for (vector strset : answer) + { + for (string str : strset) + { + cout << str << " "; + } + cout << endl; + } + return 0; +} \ No newline at end of file diff --git a/49-valid-anagrams/soln.cpp b/49-valid-anagrams/soln.cpp new file mode 100644 index 0000000..f17079b --- /dev/null +++ b/49-valid-anagrams/soln.cpp @@ -0,0 +1,18 @@ +#include "soln.hpp" + +vector> Solution::groupAnagrams(vector &strs) +{ + unordered_map> str_map; + for (string s : strs) + { + string t = s; + sort(t.begin(), t.end()); + str_map[t].push_back(s); + } + vector> anag; + for (auto it : str_map) + { + anag.push_back(it.second); + } + return anag; +} diff --git a/49-valid-anagrams/soln.hpp b/49-valid-anagrams/soln.hpp new file mode 100644 index 0000000..124802f --- /dev/null +++ b/49-valid-anagrams/soln.hpp @@ -0,0 +1,7 @@ +#include +using namespace std; +class Solution +{ +public: + vector> groupAnagrams(vector &strs); +}; \ No newline at end of file