diff --git a/1047_remove_all_adjacent_duplicates_in_string/Cargo.lock b/1047_remove_all_adjacent_duplicates_in_string/Cargo.lock new file mode 100644 index 0000000..960d3c2 --- /dev/null +++ b/1047_remove_all_adjacent_duplicates_in_string/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "remove_all_adjacent_duplicates_in_string" +version = "0.1.0" diff --git a/1047_remove_all_adjacent_duplicates_in_string/Cargo.toml b/1047_remove_all_adjacent_duplicates_in_string/Cargo.toml new file mode 100644 index 0000000..fa0077f --- /dev/null +++ b/1047_remove_all_adjacent_duplicates_in_string/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "remove_all_adjacent_duplicates_in_string" +version = "0.1.0" +edition = "2024" + +[dependencies] diff --git a/1047_remove_all_adjacent_duplicates_in_string/src/lib.rs b/1047_remove_all_adjacent_duplicates_in_string/src/lib.rs new file mode 100644 index 0000000..8e2c49c --- /dev/null +++ b/1047_remove_all_adjacent_duplicates_in_string/src/lib.rs @@ -0,0 +1,17 @@ +pub struct Solution; + +impl Solution { + pub fn remove_duplicates(s: String) -> String { + let mut stack = String::new(); + + for c in s.bytes() { + if Some(c) == stack.bytes().last() { + stack.pop(); + } else { + stack.push(c as char); + } + } + + stack + } +}