class Solution(object):
def maxProduct(self, words):
"""
:type words: List[str]
:rtype: int
"""
mask = []
for word in words:
cur_mask = 0
for c in word:
cur_mask |= (1 << (ord(c) - ord('a')))
mask.append(cur_mask)
ans = 0
for i in range(len(mask)):
for j in range(i + 1, len(mask)):
if mask[i] & mask[j] == 0:
ans = max(ans, len(words[i]) * len(words[j]))
return ans