一道位操作的好题。
当中的两个操作很好。
public class Solution {
public int maxProduct(String[] words) {
if (words == null || words.length == 0) {
return 0;
}
int[] elements = new int[words.length];
for (int i = 0; i < words.length; i++) {
String word = words[i];
for (int j = 0; j < word.length(); j++) {
elements[i] = elements[i] | (1<<(word.charAt(j) - 'a'));
}
}
int max = 0;
for (int i = 0; i < words.length; i++) {
for (int j = i + 1; j < words.length; j++) {
if ((elements[i] & elements[j]) == 0) {
max = Math.max(max, words[i].length()*words[j].length());
}
}
}
return max;
}
}