給定乙個字串陣列 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
解釋: 不存在這樣的兩個單詞。
方法一:蠻力法。窮舉兩個字串,然後判斷是否存在相同的字元,如果不存在則更新單詞長度乘積。
class solution
//窮舉第二個字串
for (int afterindex = nowindex + 1; afterindex < wordssize; ++afterindex)
}//如果不存在相同的字元
方法二:使用位操作。
小寫字母一共有26,而int型有32位,所以每乙個小寫字母佔據乙個位。在判斷字元是否存在相同的字元時只需要判斷是否存在某一位同時為1.
class solution
//窮舉第二個字串
leetcode 水題 318 最長單詞長度乘積
difficulty 中等 給定乙個字串陣列words,找到length word i length word j 的最大值,並且這兩個單詞不含有公共字母。你可以認為每個單詞只包含小寫字母。如果不存在這樣的兩個單詞,返回 0。示例 1 輸入 abcw baz foo bar xtfn abcdef ...
最大單詞長度乘積
給定乙個字串陣列 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解釋 這兩個單詞為...