leetcode 318. 最大单词长度乘积

535 阅读1分钟

解题思路

五分钟一遍过

  1. 一开始就想到用两层循环,类似排序算法,两两比较,但是要判断两个字符串是不是有包含问题,所以先写了一个isSame工具函数
  2. 定义res返回值,如果isSame没有返回true,那么这次比较的值就有效,和res做比较,比他大就更新res

用时:5-7分钟左右

代码

/**
 * @param {string[]} words
 * @return {number}
 */

// 两个字符串是不是有相同的地方
function isSame(str1,str2){
    for(let i=0;i<str1.length;i++){
        if(str2.includes(str1[i]))return true;
    }
}
var maxProduct = function(words) {
    let res = 0;

    // 两层循环,两两比较
    for(let i=0;i<words.length;i++){
        for(let j=i+1;j<words.length;j++){
            // 符合条件的话,就进行计算,然后和res比较大小 
            if(isSame(words[i],words[j])!==true){
                const _res = words[i].length*words[j].length;
                if(_res>res)res = _res;
            }
        }
    } 
    return res;
};