318 最大單詞長度乘積(JS實現)

2021-10-09 05:46:25 字數 1142 閱讀 6233

給定乙個字串陣列 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

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

這道題的關鍵點在於如何快速判斷兩個單詞是否有公共字元,因此就想到了利用位運算,我們可以將乙個單詞轉換為數字,a代表1b代表2c代表4依次類推,注意相同的字元只加一次,判斷兩個單詞是否有公共字元時只需將兩個數字作&運算看結果是否為0即可,當然可能有多個單詞轉換後的數字相同,但我們只需要最長單詞的長度即可

/**

* @param words

* @return

*/var

maxproduct

=function

(words)

;for

(let word of words)

else

}let wordbits = object.

keys

(map)

;let max =0;

for(

let i=

0; i}return max;

function

count

(word)

;for

(let alpha of word)

return sum;}}

;

318 最大單詞長度乘積

給定乙個字串陣列 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解釋 這兩個單詞為...

leetcode318 最大單詞長度乘積

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