Maximum Product of Word Lengths LeetCode solution in Python

1
class Solution:
2
def maxProduct(self, words: List[str]) -> int:
3
n = len(words)
4

5
bit_masks = [0] * n
6
lengths = [0] * n
7

8
for i in range(n):
9
for c in words[i]:
10
bit_masks[i] |= 1 << (ord(c) - ord("a")) # set the character bit
11
lengths[i] = len(words[i])
12

13
max_val = 0
14
for i in range(n):
15
for j in range(i + 1, n):
16
if not (bit_masks[i] & bit_masks[j]):
17
max_val = max(max_val, lengths[i] * lengths[j])
18

19
return max_val

0

WPM •0 •0

100%

ACC •0 •0

0s

TIME •0