专门做鞋子的网站有哪些,平面设计主要做什么工作,购物网站优化方案,人才招聘网站开发 源代码给你一个字符串数组 words #xff0c;找出并返回 length(words[i]) * length(words[j]) 的最大值#xff0c;并且这两个单词不含有公共字母。如果不存在这样的两个单词#xff0c;返回 0 。 示例 1#xff1a;
输入#xff1a;words [abcw,baz…给你一个字符串数组 words 找出并返回 length(words[i]) * length(words[j]) 的最大值并且这两个单词不含有公共字母。如果不存在这样的两个单词返回 0 。 示例 1
输入words [abcw,baz,foo,bar,xtfn,abcdef]
输出16
解释这两个单词为 abcw, xtfn。
示例 2
输入words [a,ab,abc,d,cd,bcd,abcd]
输出4
解释这两个单词为 ab, cd。
示例 3
输入words [a,aa,aaa,aaaa]
输出0
解释不存在这样的两个单词。提示
2 words.length 10001 words[i].length 1000words[i] 仅包含小写字母
class Solution {public int maxProduct(String[] words) {int[] wordArr new int[words.length];for (int i 0; i words.length; i) {for (char ch : words[i].toCharArray()) {wordArr[i] | 1 (ch - a);}}int res 0;for (int i 0; i wordArr.length; i) {for (int j i 1; j wordArr.length; j) {if ((wordArr[i] wordArr[j]) 0) {res Math.max(res, words[i].length() * words[j].length());}}}return res;}
}
位运算解释来自chat-gpt | 是一个按位或赋值运算符。它执行当前wordArr[i]值与右侧值的按位或操作然后将结果赋回给wordArr[i]。在这种情况下它用于设置wordArr[i]中的特定位。 1 (ch - a) 是一个位操作。它的工作方式如下 ch 是一个字符。ch 与字符 a 的ASCII值相减得到ch与 a 的ASCII值之间的差值。这本质上将每个字符映射到字母表中的一个位置。例如如果ch是 a则该表达式的值为0如果ch是 b则值为1依此类推。然后将1左移前面步骤得到的值的位数。这意味着将1的二进制表示向左移动这么多位。将1左移0位不会改变它1 0 1将1左移1位得到21 1 2将1左移2位得到41 2 4依此类推。