Camelcase Matching LeetCode solution in Python

1
class Solution:
2
def camelMatch(self, queries: List[str], pattern: str) -> List[bool]:
3
res, N = [], len(pattern)
4

5
for query in queries:
6

7
if (
8
self.upLetter(query) != self.upLetter(pattern)
9
or self.LCS(query, pattern) != N
10
):
11
res.append(False)
12

13
else:
14
res.append(True)
15

16
return res
17

18
def LCS(self, A, B):
19
N, M = len(A), len(B)
20
d = [[0 for _ in range(M + 1)] for _ in range(N + 1)]
21

22
for i in range(1, N + 1):
23
for j in range(1, M + 1):
24

25
if A[i - 1] == B[j - 1]:
26
d[i][j] = 1 + d[i - 1][j - 1]
27

28
else:
29
d[i][j] = max(d[i - 1][j], d[i][j - 1])
30
return d[-1][-1]
31

32
def upLetter(self, w):
33
count = 0
34
for c in w:
35
if c.isupper():
36
count += 1
37
return count

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0