leetcode318 最大單詞長度乘積

2021-10-05 23:23:02 字數 1269 閱讀 6228

給定乙個字串陣列 words,找到 length(word[i]) * length(word[j]) 的最大值,並且這兩個單詞不含有公共字母。你可以認為每個單詞只包含小寫字母。如果不存在這樣的兩個單詞,返回 0。

示例 1:

輸入:

["abcw"

,"baz"

,"foo"

,"bar"

,"xtfn"

,"abcdef"

]輸出:

16 解釋: 這兩個單詞為 "abcw"

,"xtfn"。

示例 2:

輸入:

["a"

,"ab"

,"abc"

,"d"

,"cd"

,"bcd"

,"abcd"

]輸出:

4 解釋: 這兩個單詞為 "ab"

,"cd"。

示例 3:

輸入:

["a"

,"aa"

,"aaa"

,"aaaa"

]輸出:

0 解釋: 不存在這樣的兩個單詞。

首先我們採用一種方式來描述每個單詞,快速判斷兩個單詞是否有相同的元素。

題目假定全是小寫字母,共有26個,因此可以通過乙個int型別的整數來描述(共32位,可以表示26個字母是否存在)。

例如"acg"–>1000101,「aad」–>1001。

確定了單詞的表示方法後,遍歷每個單詞,判斷其它單詞與當前單詞是否有相同的字元,例如"acd"和"ab",分別表示為1101和11,對這兩個單詞進行「與」操作,如果結果不為0,表示兩個單詞中有相同字元。

class

solution

vector<

int>

nums

(words.

size()

);// 每個單詞表示成二進位制形式

for(

int i =

0; i < words.

size()

;++i)

}int res =0;

for(

int i =

0; i < words.

size()

-1;++i)}}

return res;}}

;

leetcode 318 最大單詞長度乘積

給定乙個字串陣列words,找到length word i length word j 的最大值,並且這兩個單詞不含有公共字母。你可以認為每個單詞只包含小寫字母。如果不存在這樣的兩個單詞,返回 0。示例 1 輸入 abcw baz foo bar xtfn abcdef 輸出 16解釋 這兩個單詞為...

leetcode318 最大單詞長度乘積

給定乙個字串陣列words,找到length word i length word j 的最大值,並且這兩個單詞不含有公共字母。你可以認為每個單詞只包含小寫字母。如果不存在這樣的兩個單詞,返回 0。示例 1 輸入 abcw baz foo bar xtfn abcdef 輸出 16解釋 這兩個單詞為...

Leetcode 318 最大單詞長度乘積

給定乙個字串陣列words,找到length word i length word j 的最大值,並且這兩個單詞不含有公共字母。你可以認為每個單詞只包含小寫字母。如果不存在這樣的兩個單詞,返回 0。示例 1 輸入 abcw baz foo bar xtfn abcdef 輸出 16解釋 這兩個單詞為...