You're given strings J
representing the types of stones that are jewels, and S
representing the stones you have. Each character in S
is a type of stone you have. You want to know how many of the stones you have are also jewels.
The letters in J
are guaranteed distinct, and all characters in J
and S
are letters. Letters are case sensitive, so "a"
is considered a different type of stone from "A"
.
Input: J = "aA", S = "aAAbbbb" Output: 3
Input: J = "z", S = "ZZ" Output: 0
S
andJ
will consist of letters and have length at most 50.- The characters in
J
are distinct.
use std::collections::HashMap;
impl Solution {
pub fn num_jewels_in_stones(j: String, s: String) -> i32 {
let mut jewels = HashMap::new();
for ch_j in j.chars() {
jewels.insert(ch_j, 0);
}
for ch_s in s.chars() {
if let Some(i) = jewels.get(&ch_s) {
jewels.insert(ch_s, i + 1);
}
}
jewels.values().sum()
}
}