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

JavaScript में दो सरणियों में सबसे लंबी सामान्य श्रृंखला (Common Streak) ढूंढना


हमें एक JavaScript फ़ंक्शन लिखना है जो शाब्दिक मूल्यों की दो सरणियाँ लेता है, आइए उन्हें arr1 और arr2 कहते हैं।

फ़ंक्शन को सरणियों में शाब्दिक मूल्यों की सबसे लंबी सामान्य श्रृंखला ढूंढनी चाहिए। फ़ंक्शन को अंततः उन शाब्दिक मूल्यों की एक सरणी वापस करनी चाहिए।

उदाहरण के लिए -

यदि इनपुट सरणियाँ हैं -

const arr1 = ['a', 'b', 'c', 'd', 'e'];
const arr2 = ['k', 'j', 'b', 'c', 'd', 'w'];

तो आउटपुट सरणी होनी चाहिए -

const output = ['b', 'c', 'd'];

उदाहरण

निम्नलिखित कोड देखें:

const arr1 = ['a', 'b', 'c', 'd', 'e'];
const arr2 = ['k', 'j', 'b', 'c', 'd', 'w'];

const longestCommonSubsequence = (arr1 = [], arr2 = []) => {
  let str1 = arr1.join('');
  let str2 = arr2.join('');
  const arr = Array(str2.length + 1).fill(null).map(() => Array(str1.length + 1).fill(null));
  for (let j = 0; j <= str1.length; j += 1) {
    arr[0][j] = 0;
  }
  for (let i = 0; i <= str2.length; i += 1) {
    arr[i][0] = 0;
  }
  for (let i = 1; i <= str2.length; i += 1) {
    for (let j = 1; j <= str1.length; j += 1) {
      if (str1[j - 1] === str2[i - 1]) {
        arr[i][j] = arr[i - 1][j - 1] + 1;
      } else {
        arr[i][j] = Math.max(
          arr[i - 1][j],
          arr[i][j - 1]
        );
      }
    }
  }
  if (!arr[str2.length][str1.length]) {
    return [''];
  }
  const res = [];
  let j = str1.length;
  let i = str2.length;
  while (j > 0 || i > 0) {
    if (str1[j - 1] === str2[i - 1]) {
      res.unshift(str1[j - 1]);
      j -= 1;
      i -= 1;
    } else if (arr[i][j] === arr[i][j - 1]) {
      j -= 1;
    } else {
      i -= 1;
    }
  }
  return res;
};

console.log(longestCommonSubsequence(arr1, arr2));

आउटपुट

कंसोल पर निम्नलिखित आउटपुट प्राप्त होगा:

['b', 'c', 'd']

  1. - JavaScript में दो सरणियों से अधिकतम संख्या बनाना

    समस्या हमें एक JavaScript फ़ंक्शन लिखना है जो एकल अंक संख्याओं की दो सरणियों को लेता है जो दो संख्याओं का प्रतिनिधित्व करती हैं, arr1 और arr2 पहले और दूसरे आर्गुमेंट के रूप में। फ़ंक्शन का तीसरा आर्गुमेंट एक संख्या होगी, num (num <= arr1 की लंबाई + arr2 की लंबाई) हमारे फ़ंक्शन को एकल अंक संख्याओं क

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

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

  1. - जावास्क्रिप्ट में सरणियों के भीतर सभी सामान्य तत्वों का योग ढूंढना

    समस्याहमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो संख्याओं की तीन सरणियां लेता है। हमारा फ़ंक्शन उन सभी संख्याओं का योग लौटाएगा जो तीनों सरणियों में सामान्य हैं।उदाहरणनिम्न कोड देखें:const arr1 = [4, 4, 5, 8, 3]; const arr2 = [7, 3, 7, 4, 1]; const arr3 = [11, 0, 7, 3, 4]; const sumCommon = (arr1 = []