JAVA基础位或运算

正显示的那一行的括号里的char[j]-'a' 是什么意思的,
这个是力扣的318题

img



class Solution {
    public int maxProduct(String[] words) {
        int[] bits = new int[words.length];
        int res = 0;
        // 将字符串转换为bit数组
        for (int i = 0; i < words.length; i++) {
            char[] chars = words[i].toCharArray();
            for (int j = 0; j < chars.length; j++) {
                bits[i] |= 1 << (chars[j] - 'a');
            }
        }
        //双重for循环找到最大
        for (int i = 0; i < bits.length; i++) {
            for (int j = i + 1; j < bits.length; j++) {
                if((bits[i] & bits[j]) == 0)
                    res = Math.max(res, words[i].length() * words[j].length());
            }
        }
        return res;
    }

}

如果 char = 'a' 那么 char - 'a' 就是0 ,可以用来计算下标

这个不是asc码么

单引号表示字符的编码形式,是整型变量哦。