समस्या
हमें एक 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