318. Maximum Product of Word Lengths

Posted 为了更优秀的你,加油!

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了318. Maximum Product of Word Lengths相关的知识,希望对你有一定的参考价值。

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.

Example 1:

Given ["abcw", "baz", "foo", "bar", "xtfn", "abcdef"]
Return 16
The two words can be "abcw", "xtfn".

Example 2:

Given ["a", "ab", "abc", "d", "cd", "bcd", "abcd"]
Return 4
The two words can be "ab", "cd".

Example 3:

Given ["a", "aa", "aaa", "aaaa"]
Return 0
No such pair of words.

Credits:
Special thanks to @dietpepsi for adding this problem and creating all test cases.

解题思路:本题主要是如何快速求出两个字符串有没有交集。用一个int值标记每个串a-z哪些字母出现过,之后两两比较看是否有交集

class Solution {
public:
    int maxProduct(vector<string>& words) {
        vector<int>v(words.size()+1,0);
        for(int i=0;i<words.size();i++){
            for(int j=0;j<words[i].length();j++){
                v[i]|=1<<words[i][j];
            }
        }
        int mmax=0;
        for(int i=0;i<words.size();i++){
            for(int j=i+1;j<words.size();j++){
                if(!(v[i]&v[j])&&words[i].length()*words[j].length()>mmax){
                    mmax=words[i].length()*words[j].length();
                }
            }
        }
        return mmax;
    }
};

 

以上是关于318. Maximum Product of Word Lengths的主要内容,如果未能解决你的问题,请参考以下文章

318. Maximum Product of Word Lengths

318. Maximum Product of Word Lengths

318. Maximum Product of Word Lengths

318. Maximum Product of Word Lengths

318. Maximum Product of Word Lengths

LeetCode 318. Maximum Product of Word Lengths