【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; } };

浙公网安备 33010602011771号