- class Solution {
- public int maxProduct(String[] words) {
- int length = words.length;
- int[] masks = new int[length];
- for (int i = 0; i < length; i++){
- String word = words[i];
- int wordLength = word.length();
- for (int j = 0; j < wordLength; j++){
- masks[i] |= 1 << (word.charAt(j) - 'a');
- }
- }
-
- int maxProd = 0;
- for (int i = 0; i < length; i++){
- for (int j = i + 1; j < length; j++){
- if ((masks[i] & masks[j]) == 0){
- maxProd = Math.max(maxProd, words[i].length() * words[j].length());
- }
- }
- }
- return maxProd;
- }
- }