JavaScript 中唯一單詞的最大長度乘積
問題
我們需要編寫一個 JavaScript 函式,該函式以一個包含字串的陣列(僅小寫字母表字串)作為第一個,也是唯一的引數。
該函式應從陣列中選擇兩個這樣的字串,這兩個字串沒有共同的字元且有最大的長度乘積。然後,我們的函式應返回這兩個字串的長度乘積。如果陣列中不存在這樣的字串,則應返回 0。
例如,如果輸入函式是 -
const arr = ["karl", "n", "the", "car", "mint", "alpha"];
則輸出應為 -
const output = 20;
輸出說明
單詞“mint”和“alpha”沒有共用單詞,並且它們的長度乘積為 20。
示例
相應的程式碼為 -
const arr = ["karl", "n", "the", "car", "mint", "alpha"];
const maxLengthProduct = (arr = []) => {
const array = [];
arr.forEach(str => {
let curr = 0;
for(let i = 0; i < str.length; i++){
curr |= 1<<(str.charCodeAt(i) - 97);
};
array.push(curr);
});
let res = 0;
for(let i = 0 ; i < array.length; i++) {
for(let j = i + 1; j < array.length ; j++) {
if((array[i] & array[j]) === 0) {
res = Math.max(res, arr[i].length * arr[j].length);
}
}
}
return res;
};
console.log(maxLengthProduct(arr));輸出
控制檯中的輸出為 -
20
廣告
資料結構
網路
RDBMS
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP