#include "unordered_containers.hpp" #include #include namespace stl_containers { auto first_unique(const std::vector& words) -> std::string { auto s = std::set(); for (const auto& word : words) { if (!s.contains(word)) { s.insert(word); } else { s.erase(word); } } return s.empty() ? "" : *s.begin(); } auto group_anagrams(const std::vector& words) -> std::unordered_map> { auto groups = std::unordered_map>(); for (const auto& word : words) { auto key = word; std::ranges::sort(key); groups[key].push_back(word); } return groups; } auto has_duplicate(const std::vector& data) -> bool { auto s = std::set{}; for (auto i : data) s.insert(i); return s.size() != data.size(); } } // namespace stl_containers