use std::collections::HashSet;
fn remove_duplicates(elements: Vec<&str>) -> Vec<&str> {
let mut encountered = HashSet::new();
let mut result = Vec::new();
for &element in &elements {
if encountered.insert(element) {
result.push(element);
}
}
result
}
fn main() {
let elements = vec!["aaa", "bbb", "ccc", "ddd", "eee", "aaa", "www", "ddd", "bbb", "aaa"];
println!("{:?}", elements);
println!("{:?}", remove_duplicates(elements));
}
/*
run:
["aaa", "bbb", "ccc", "ddd", "eee", "aaa", "www", "ddd", "bbb", "aaa"]
["aaa", "bbb", "ccc", "ddd", "eee", "www"]
*/