fn remove_adjacent_duplicates(s: &str) -> String {
let mut stack: Vec<char> = Vec::with_capacity(s.len());
for ch in s.chars() {
if let Some(&last) = stack.last() {
if last == ch {
stack.pop(); // pop
continue;
}
}
stack.push(ch); // push
}
stack.into_iter().collect()
}
fn main() {
let s = "abbacccada";
println!("{}", remove_adjacent_duplicates(s));
}
/*
run:
cada
*/