How to remove all adjacent duplicate characters from a string until no more can be removed in Rust

1 Answer

0 votes
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

*/

 



answered Mar 7 by avibootz

Related questions

...