diff --git a/771_jewels_and_stones/Cargo.lock b/771_jewels_and_stones/Cargo.lock new file mode 100644 index 0000000..6824756 --- /dev/null +++ b/771_jewels_and_stones/Cargo.lock @@ -0,0 +1,7 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 4 + +[[package]] +name = "jewels_and_stones" +version = "0.1.0" diff --git a/771_jewels_and_stones/Cargo.toml b/771_jewels_and_stones/Cargo.toml new file mode 100644 index 0000000..877d2ad --- /dev/null +++ b/771_jewels_and_stones/Cargo.toml @@ -0,0 +1,6 @@ +[package] +name = "jewels_and_stones" +version = "0.1.0" +edition = "2024" + +[dependencies] diff --git a/771_jewels_and_stones/src/lib.rs b/771_jewels_and_stones/src/lib.rs new file mode 100644 index 0000000..e2fa66a --- /dev/null +++ b/771_jewels_and_stones/src/lib.rs @@ -0,0 +1,18 @@ +use std::collections::HashSet; + +pub struct Solution; + +impl Solution { + pub fn num_jewels_in_stones(jewels: String, stones: String) -> i32 { + let jewels: HashSet = HashSet::from_iter(jewels.chars()); + let mut result = 0; + + for stone in stones.chars() { + if jewels.contains(&stone) { + result += 1; + } + } + + result + } +}