Skip to content

Commit 4f8a307

Browse files
committed
Runtime: 19 ms (Top 100.0%) | Memory: 3.30 MB (Top 75.0%)
1 parent 10c7cd8 commit 4f8a307

File tree

1 file changed

+21
-0
lines changed

1 file changed

+21
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
// Runtime: 19 ms (Top 100.0%) | Memory: 3.30 MB (Top 75.0%)
2+
3+
impl Solution {
4+
pub fn word_subsets(a: Vec<String>, b: Vec<String>) -> Vec<String> {
5+
let count = |s: &str| {
6+
let mut m = [0; 26];
7+
s.chars().for_each(|c| m[c as usize - 'a' as usize] += 1);
8+
m
9+
};
10+
let b_counts = b.iter().map(|s| count(s)).fold([0; 26], |mut bm, m| {
11+
m.iter().enumerate().for_each(|(i, &n)| bm[i] = bm[i].max(n));
12+
bm
13+
});
14+
15+
a.into_iter()
16+
.map(|w| (count(&w), w))
17+
.filter(|(m, _)| b_counts.iter().enumerate().all(|(i, &n)| m[i] >= n))
18+
.map(|(_, w)| w)
19+
.collect()
20+
}
21+
}

0 commit comments

Comments
 (0)