【LeetCode】318. 最大单词长度乘积

class Solution {
public:
    int maxProduct(vector<string>& words) {
        int n = words.size();
        int stat[n];
        int wsize[n];  //存储单词长度
        for(int i=0 ; i<n ; i++)
        {
            stat[i]=0;
            wsize[i]=words[i].size();
            for(int j=0;j<wsize[i];++j)
            {
                stat[i]|=(1<<(words[i][j]-'a'));  
                //位运算,int对应的某一位上若有字母则标为1
            }
        }

        int ans=0;
        for(int i=0;i<n;++i)
        {
            for(int j=i+1;j<n;++j)
            {
                if((stat[i]&stat[j])==0) //没有相同的字母
                {
                    int temp=wsize[i]*wsize[j];
                    if(temp>ans)
                        ans=temp;
                }
            }
        }

        return ans;
    }
};

 

posted @ 2022-02-05 17:07  Jerry2km1  阅读(46)  评论(0)    收藏  举报