题目描述:
题解:
思路:
1.用一个int数字word_int[i]表示words[i]的字母出现情况。
2.如果word_int[i]和word_int[j]按位与操作结果为0,说明words[i]与words[j]无重复字符。
3.python按位与操作符&,按位或|,按位异或^。python中char转int ord(char),int转char char(int)
class Solution: def maxProduct(self, words: List[str]) -> int: word_len = len(words) wordint = [0 for i in range(word_len)] for i in range(word_len): for chara in words[i]: wordint[i] = wordint[i]|(1<<(ord(chara)-ord('a'))) maxres = 0 for i in range(len(words)): for j in range(i+1,len(words)): if wordint[i]&wordint[j]==0: maxres = max(maxres,len(words[i])*len(words[j])) return maxres