Description
Submission
class Solution { public: int maxProduct(vector<string>& words) { int n = words.size(); vector<int> wordVals(n); for(int i = 0; i < n; ++i) { auto& word = words[i]; int cur = 0; for(char ch: word) { if(!((1<<(ch-'a'))&cur)) cur += (1<<(ch-'a')); } wordVals[i] = cur; } int ret = 0; for(int i = 0; i < n; ++i) { for(int j = i + 1; j < n; ++j) { if(!(wordVals[i] & wordVals[j])) { ret = max(int(words[i].length() * words[j].length()), ret); } } } return ret; } };