class Solution:
def maxProduct(self, words):
"""
:type words: List[str]
:rtype: int
"""
mark = {word: (self.tool(word), len(word)) for word in words}
length = len(words)
res = 0
for i in range(length - 1):
for j in range(i+1, length):
if mark[words[i]][0] & mark[words[j]][0] == 0:
tmp = mark[words[i]][1] * mark[words[j]][1]
res = tmp if tmp > res else res
return res
def tool(self, word):
res = 0
for letter in word:
res |= (1 << (ord(letter) - 97))
return res