Leetcode 1002. Find Common Characters

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

1. Description

Find Common Characters

2. Solution

  • Version 1
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
class Solution:
def commonChars(self, A):
n = len(A)
if n == 1:
return []
result = sorted(A[0])
for i in range(1, n):
result = common(result, A[i])
return result


def common(A, B):
result = []
B = sorted(B)
m = len(A)
n = len(B)
i = 0
j = 0
while i < m and j < n:
if A[i] < B[j]:
i += 1
elif A[i] > B[j]:
j += 1
else:
result.append(A[i])
i += 1
j += 1
return result
  • Version 2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution:
def commonChars(self, A):
n = len(A)
if n == 1:
return []
result = list(A[0])
B = [list(A[i]) for i in range(1, n)]
for ch in A[0]:
for i in range(n - 1):
if ch not in B[i]:
result.remove(ch)
break
B[i].remove(ch)
return result

Reference

  1. https://leetcode.com/problems/find-common-characters/
如果有收获,可以请我喝杯咖啡!