समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो पहले और एकमात्र तर्क के रूप में स्ट्रिंग्स (केवल लोअरकेसस्ट्रिंग अक्षर) की एक सरणी लेता है।
फ़ंक्शन को सरणी से दो ऐसे तार लेने चाहिए जो कोई सामान्य वर्ण साझा नहीं करते हैं और उनकी लंबाई का अधिकतम उत्पाद है। और फिर हमारे फ़ंक्शन को दो ऐसे स्ट्रिंग्स के लंबाई उत्पाद को वापस करना चाहिए। अगर ऐरे में ऐसी कोई स्ट्रिंग मौजूद नहीं है, तो हमें 0.
. पर वापस लौटना चाहिएउदाहरण के लिए, यदि फ़ंक्शन का इनपुट है -
const arr = ["karl", "n", "the", "car", "mint", "alpha"];
तब आउटपुट होना चाहिए -
const output = 20;
आउटपुट स्पष्टीकरण:
शब्द 'मिंट' और 'अल्फा' में कोई सामान्य शब्द नहीं है और उनकी लंबाई का गुणनफल 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