-
Notifications
You must be signed in to change notification settings - Fork 613
/
1002.py
44 lines (34 loc) · 1.23 KB
/
1002.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
'''
Given an array A of strings made only from lowercase letters, return a list of all characters that show up in all strings within the list (including duplicates). For example, if a character occurs 3 times in all strings but not 4 times, you need to include that character three times in the final answer.
You may return the answer in any order.
Example 1:
Input: ["bella","label","roller"]
Output: ["e","l","l"]
Example 2:
Input: ["cool","lock","cook"]
Output: ["c","o"]
'''
class Solution(object):
def commonChars(self, A):
"""
:type A: List[str]
:rtype: List[str]
"""
char_map = {}
for char in A[0]:
if char in char_map:
char_map[char] += 1
else:
char_map[char] = 1
int_map = {}
for index in range(1, len(A)):
for char in char_map.keys():
if char in A[index]:
char_count = min(A[index].count(char), char_map[char])
char_map[char] = char_count
else:
del char_map[char]
result = []
for key, value in char_map.items():
result.extend([key]*value)
return result