classSolution: defcommonChars(self, words: List[str]) -> List[str]: letters_list = [] for word in words: # initialize list letters = [0] * 26
# count each letter for letter in word: letters[ord(letter) - ord('a')] += 1 letters_list.append(letters) result_list = letters_list[0] # min each word for word in letters_list: for i inrange(len(word)): result_list[i] = min(word[i], result_list[i]) result = [] for letter inrange(len(result_list)): for _ inrange(result_list[letter]): result.append(chr(ord('a') + letter))
return result
word長度: m 時間複雜度: O(3mn) -> O(mn) -> O(n) 空間複雜度: O(1)