本文介绍了一种解决LeetCode 318题(Maximum Product of Word Lengths)的有效算法,通过位操作判断字符串间是否有公共字母,并计算出不共用字母的字符串的最大长度乘积。
LeetCode 318. Maximum Product of Word Lengths 题解(C++)
题目描述
Given a string array words, find the maximum value of length(word[i]) * length(word[j]) where the two words do not share common letters. You may assume that each word will contain only lower case letters. If no such two words exist, return 0.
举例
Given [“abcw”, “baz”, “foo”, “bar”, “xtfn”, “abcdef”]
Return 16
The two words can be “abcw”, “xtfn”.
Given [“a”, “ab”, “abc”, “d”, “cd”, “bcd”, “abcd”]
Return 4
The two words can be “ab”, “cd”.
Given [“a”, “aa”, “aaa”, “aaaa”]
Return 0
No such pair of words.