Files
cpp-course/modules/07_stl_containers/src/unordered_containers.cpp
T

38 lines
975 B
C++
Raw Normal View History

2026-08-11 17:40:36 +03:00
#include "unordered_containers.hpp"
2026-08-16 10:57:20 +03:00
#include <algorithm>
#include <set>
2026-08-11 17:40:36 +03:00
namespace stl_containers {
auto first_unique(const std::vector<std::string>& words) -> std::string {
2026-08-16 10:57:20 +03:00
auto s = std::set<std::string>();
for (const auto& word : words) {
if (!s.contains(word)) {
s.insert(word);
} else {
s.erase(word);
}
}
return s.empty() ? "" : *s.begin();
2026-08-11 17:40:36 +03:00
}
auto group_anagrams(const std::vector<std::string>& words)
-> std::unordered_map<std::string, std::vector<std::string>> {
2026-08-16 10:57:20 +03:00
auto groups = std::unordered_map<std::string, std::vector<std::string>>();
for (const auto& word : words) {
auto key = word;
std::ranges::sort(key);
groups[key].push_back(word);
}
return groups;
2026-08-11 17:40:36 +03:00
}
auto has_duplicate(const std::vector<int>& data) -> bool {
2026-08-16 10:57:20 +03:00
auto s = std::set<int>{};
for (auto i : data) s.insert(i);
return s.size() != data.size();
2026-08-11 17:40:36 +03:00
}
} // namespace stl_containers