318. 最大单词长度乘积

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

 


版权声明:本文为hsc_1原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。