单词长度的最大乘积

题目

剑指 Offer II 005. 单词长度的最大乘积

给定一个字符串数组  words,请计算当两个字符串 words[i] 和 words[j] 不包含相同字符时,它们长度的乘积的最大值。假设字符串中只包含英语的小写字母。如果没有不包含相同字符的一对字符串,返回 0。

思路

代码

1. 暴力循环

/**
 * @param {string[]} words
 * @return {number}
 */
var maxProduct = function (words) {
  let max = 0;

  function repeatCheck(a, b) {
    for (let i = 0; i < a.length; i++) {
      if (b.indexOf(a[i]) !== -1) {
        return true;
      }
    }
    return false;
  }

  for (let i = 0; i < words.length - 1; i++) {
    for (let j = 1; j < words.length; j++) {
      const string = words[i] + words[j];
      const x = words[i].length;
      const y = words[j].length;

      const isRepeat = repeatCheck(words[i], words[j]);

      if (!isRepeat) {
        max = Math.max(max, x * y);
      }
    }
  }

  return max;
};