Problem Link

Description


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.

 

Example 1:

Input: words = ["bella","label","roller"]
Output: ["e","l","l"]

Example 2:

Input: words = ["cool","lock","cook"]
Output: ["c","o"]

 

Constraints:

  • 1 <= words.length <= 100
  • 1 <= words[i].length <= 100
  • words[i] consists of lowercase English letters.

Solution


Python3

class Solution:
    def commonChars(self, words: List[str]) -> List[str]:
        count = [inf] * 26
 
        for word in words:
            curr = [0] * 26
            for c in word:
                curr[ord(c) - ord('a')] += 1
            
            for i in range(26):
                count[i] = min(count[i], curr[i])
        
        res = []
        for i in range(26):
            for _ in range(count[i]):
                res.append(chr(ord('a') + i))
        
        return res