From 993535a05b41e9447edb20457ee031ca954c4a08 Mon Sep 17 00:00:00 2001 From: jackfiled Date: Sat, 24 May 2025 17:34:51 +0800 Subject: [PATCH] 20250524 finished. --- src/problem/mod.rs | 2 + .../p2942_find_words_containing_character.rs | 39 +++++++++++++++++++ 2 files changed, 41 insertions(+) create mode 100644 src/problem/p2942_find_words_containing_character.rs diff --git a/src/problem/mod.rs b/src/problem/mod.rs index fa8f00d..6a98bc3 100644 --- a/src/problem/mod.rs +++ b/src/problem/mod.rs @@ -672,3 +672,5 @@ mod p3356_zero_array_transformation_ii; mod p3362_zero_array_transformation_iii; mod p3068_find_the_maximum_sum_of_node_values; + +mod p2942_find_words_containing_character; diff --git a/src/problem/p2942_find_words_containing_character.rs b/src/problem/p2942_find_words_containing_character.rs new file mode 100644 index 0000000..ad589fc --- /dev/null +++ b/src/problem/p2942_find_words_containing_character.rs @@ -0,0 +1,39 @@ +/** + * [2942] Find Words Containing Character + */ +pub struct Solution {} + +// submission codes start here + +impl Solution { + pub fn find_words_containing(words: Vec, x: char) -> Vec { + words + .iter() + .enumerate() + .filter_map(|(i, v)| if v.contains(x) { Some(i as i32) } else { None }) + .collect() + } +} + +// submission codes end + +#[cfg(test)] +mod tests { + use super::*; + + #[test] + fn test_2942() { + assert_eq!( + vec![0, 1], + Solution::find_words_containing(vec_string!("leet", "code"), 'e') + ); + assert_eq!( + vec![0, 2], + Solution::find_words_containing(vec_string!("abc", "bcd", "aaaa", "cbc"), 'a') + ); + assert_eq!( + Vec::::new(), + Solution::find_words_containing(vec_string!("abc", "bcd", "aaaa", "cbc"), 'z'), + ); + } +}