Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> JavaScript

स्ट्रिंग्स की सरणियों का प्रतिच्छेदन (Intersection) ढूँढना - JavaScript


हमारे पास संख्याओं की दो सरणियाँ हैं, और हमें एक फ़ंक्शन लिखना है, मान लीजिए intersection(), जो उनका प्रतिच्छेदन (intersection) निकालता है और एक सरणी लौटाता है जिसमें प्रतिच्छेद करने वाले तत्व किसी भी क्रम में हों। परिणाम में प्रत्येक तत्व उतनी बार आना चाहिए जितनी बार वह दोनों सरणियों में दिखता है।

उदाहरण

यदि इनपुट है:

arr1 = ['hello', 'world', 'how', 'are', 'you']; 
arr2 = ['hey', 'world', 'can', 'you', 'rotate'];

तो आउटपुट होना चाहिए:

Output: ['world', 'you'];

दृष्टिकोण

यदि सरणियाँ क्रमबद्ध होतीं, तो हम दो पॉइंटर दृष्टिकोण का उपयोग कर सकते थे जिसमें दोनों शुरू में 0 पर संबंधित सरणी की शुरुआत की ओर इशारा करते और हम संबंधित पॉइंटर को बढ़ाकर आगे बढ़ सकते थे और यह समय के संदर्भ में O(m+n) जटिल होता जहाँ m और n सरणियों के आकार हैं।

लेकिन चूंकि हमारे पास असॉर्टेड सरणियाँ हैं, सरणियों को क्रमबद्ध करने और फिर इस दृष्टिकोण का उपयोग करने में कोई तर्क नहीं है, हम पहले सरणी के हर मान को दूसरी के विरुद्ध जाँचेंगे और एक प्रतिच्छेदन सरणी का निर्माण करेंगे। इसमें O(n^2) समय लगेगा।

कोड

arr1 = ['hello', 'world', 'how', 'are', 'you']; 
arr2 = ['hey', 'world', 'can', 'you', 'rotate']; 
const intersectElements = (arr1, arr2) => { 
  const res = []; 
  const { length: len1 } = arr1; 
  const { length: len2 } = arr2; 
  const smaller = (len1 < len2 ? arr1 : arr2).slice(); 
  const bigger = (len1 >= len2 ? arr1 : arr2).slice(); 
  for (let i = 0; i < smaller.length; i++) { 
    if (bigger.indexOf(smaller[i]) !== -1) { 
      res.push(smaller[i]); 
      bigger.splice(bigger.indexOf(smaller[i]), 1, undefined); 
    } 
  } 
  return res; 
}; 
console.log(intersectElements(arr1, arr2));

आउटपुट

[ 'world', 'you' ]
  1. - JavaScript में दो लिटरल्स के ऐरे के बीच गायब नंबर खोजना

    समस्याहमें एक JavaScript फ़ंक्शन लिखना है जो दो ऐरे arr1 और arr2 लेता है। arr2, arr1 का एक शफ़ल्ड डुप्लिकेट है जिसमें केवल एक एलिमेंट गायब है। हमारा फ़ंक्शन उस एक एलिमेंट को खोजकर लौटाएगा।उदाहरणनिम्नलिखित कोड है − { const obj = {}; for (let i = 0; i < arr1.length; i++) { if (obj[arr1[i]] === u

  1. - जावास्क्रिप्ट में दो सरणियों से स्ट्रिंग्स की लंबाई का अधिकतम निरपेक्ष अंतर

    समस्याहमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो दो सरणियां, a1 और a2 स्ट्रिंग्स की लेता है। प्रत्येक स्ट्रिंग a से z के अक्षरों से बनी होती है। मान लीजिए x पहली सरणी में कोई स्ट्रिंग है और y दूसरी सरणी में कोई स्ट्रिंग है। हमारा फ़ंक्शन निम्न का मान ढूंढेगा:max(abs(length(x) - length(y)))उदाहरणनिम्न

  1. - JavaScript में दो सरणियों को संतुलित करना

    समस्या हमें एक JavaScript फ़ंक्शन लिखना है जो संख्याओं की दो सरणियों, arr1 और arr2, को पहला और दूसरा तर्क के रूप में लेता है। arr1 और arr2 में तत्वों का योग अलग है। हमारे फ़ंक्शन को पहली सरणी से एक तत्व चुनकर दूसरी सरणी में डालना चाहिए और दूसरी सरणी से एक तत्व चुनकर पहली सरणी में डालना चाहिए ताकि दो