string の配列を指定して 、 共通の文字を含まない 2 つの単語の最大値をwords
見つけて返します。length(words[i]) * length(words[j])
そのような 2 つの単語が存在しない場合は、 を返します0
。
例 1:
入力:単語 =["abcw","baz","foo","bar","xtfn","abcdef"]
出力:16 解释
这两个单词为 "abcw", "xtfn"
例 2:
入力:単語 =["a","ab","abc","d","cd","bcd","abcd"]
出力: :この 2 つの単語は4 解释
"ab", "cd"
例 3:
入力:単語 =["a","aa","aaa","aaaa"]
出力:0 解释
不存在这样的两个单词。
アイデア:まず set() を使用して、リスト内の単語の重複を排除します。次に、リスト内の単語の交差部分を取得します。
class Solution:
def maxProduct(self, words: List[str]) -> int:
a = [set(word) for word in words]
ans = 0
for i in range(len(a)):
for j in range(i+1 , len(a)):
if not a[i].intersection(a[j]):
ans = max(ans, len(words[i]) * len(words[j]))
return ans
注:交差点を取得するには、intersection() 関数が使用されます。