From 90bdc41ca6177c95842c78d9b842db11fd0c1e0e Mon Sep 17 00:00:00 2001 From: jackfiled Date: Thu, 15 May 2025 14:41:38 +0800 Subject: [PATCH] 20250515 finished. --- src/problem/mod.rs | 2 + ...t_unequal_adjacent_groups_subsequence_i.rs | 43 +++++++++++++++++++ 2 files changed, 45 insertions(+) create mode 100644 src/problem/p2900_longest_unequal_adjacent_groups_subsequence_i.rs diff --git a/src/problem/mod.rs b/src/problem/mod.rs index d37133b..ec477c1 100644 --- a/src/problem/mod.rs +++ b/src/problem/mod.rs @@ -654,3 +654,5 @@ mod p2094_finding_3_digit_even_numbers; mod p3335_total_characters_in_string_after_transformations_i; mod p3337_total_characters_in_string_after_transformations_ii; + +mod p2900_longest_unequal_adjacent_groups_subsequence_i; diff --git a/src/problem/p2900_longest_unequal_adjacent_groups_subsequence_i.rs b/src/problem/p2900_longest_unequal_adjacent_groups_subsequence_i.rs new file mode 100644 index 0000000..a895009 --- /dev/null +++ b/src/problem/p2900_longest_unequal_adjacent_groups_subsequence_i.rs @@ -0,0 +1,43 @@ +/** + * [2900] Longest Unequal Adjacent Groups Subsequence I + */ +pub struct Solution {} + +// submission codes start here + +impl Solution { + pub fn get_longest_subsequence(words: Vec, groups: Vec) -> Vec { + let mut result = vec![words[0].clone()]; + + let mut last_number = groups[0]; + + for i in 1..groups.len() { + if groups[i] != last_number { + result.push(words[i].clone()); + } + + last_number = groups[i]; + } + + result + } +} + +// submission codes end + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_2900() { + assert_eq!( + vec_string!("e", "b"), + Solution::get_longest_subsequence(vec_string!("e", "a", "b"), vec![0, 0, 1]) + ); + assert_eq!( + vec_string!("a", "b", "c"), + Solution::get_longest_subsequence(vec_string!("a", "b", "c", "d"), vec![1, 0, 1, 1]) + ); + } +}