#include <iostream>
#include <unordered_map>
std::string removeDuplicates(std::string str) {
std::unordered_map<char, int> exists;
int size = str.size();
std::string result = "";
for (int i = 0; i < size; i++) {
if (exists.find(str[i]) == exists.end()) {
result.push_back(str[i]);
exists[str[i]]++;
}
}
return result;
}
int main() {
std::string str = "abcdaaaabbbccccddddefghhhhhhxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
std::cout << removeDuplicates(str);
}
/*
run:
abcdefghx
*/