Skip to main content
Back to problems
#1002
Easy Algorithms

Find common characters

Array Hash Table String
74.7% acceptance
Feb 25, 2026
4505
436
Given a string array words, return an array of all characters that show up in all strings within the words (including duplicates). You may return the answer in any order.

Solution

Rust
Time O(n²)
Space O(n)
LeetCode
solution.rs
impl Solution {
  pub fn common_chars(words: Vec<String>) -> Vec<String> {
    let freq = |w: &str| -> [usize;26] {
      let mut f = [0usize;26];
      for b in w.bytes() { f[(b-b'a') as usize] += 1; }
      f
    };
    let mut min_f = freq(&words[0]);
    for w in &words[1..] {
      let f = freq(w);
      for i in 0..26 { min_f[i] = min_f[i].min(f[i]); }
    }
    let mut res = Vec::new();
    for i in 0..26 {
      for _ in 0..min_f[i] { res.push(((b'a'+i as u8) as char).to_string()); }
    }
    res
  }
}