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

जावास्क्रिप्ट में दो स्ट्रिंग्स के बीच सबसे लंबे समय तक सामान्य लगातार सबस्ट्रिंग ढूँढना

<घंटा/>

हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो दो स्ट्रिंग्स में लेता है। आइए उन्हें str1 औरstr2 कहते हैं। फ़ंक्शन को तब सबसे लंबी लगातार स्ट्रिंग का पता लगाना चाहिए जो दोनों इनपुट स्ट्रिंग्स के लिए सामान्य है और उस सामान्य स्ट्रिंग को वापस कर दें।

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

यदि इनपुट स्ट्रिंग्स हैं -

const str1 = 'ABABC';
const str2 = 'BABCA';

तब आउटपुट स्ट्रिंग होनी चाहिए -

const output = 'BABC';

उदाहरण

निम्नलिखित कोड है -

const str1 = 'ABABC';
const str2 = 'BABCA';
const findCommon = (str1 = '', str2 = '') => {
   const s1 = [...str1];
   const s2 = [...str2];
   const arr = Array(s2.length + 1).fill(null).map(() => {
      return Array(s1.length + 1).fill(null);
   });
   for (let j = 0; j <= s1.length; j += 1) {
      arr[0][j] = 0;
   }
   for (let i = 0; i <= s2.length; i += 1) {
      arr[i][0] = 0;
   }
   let len = 0;
   let col = 0;
   let row = 0;
   for (let i = 1; i <= s2.length; i += 1) {
      for (let j = 1; j <= s1.length; j += 1) {
         if (s1[j - 1] === s2[i - 1]) {
            arr[i][j] = arr[i - 1][j - 1] + 1;
         }
         else {
            arr[i][j] = 0;
         }
         if (arr[i][j] > len) {
            len = arr[i][j];
            col = j;
            row = i;
         }
      }
   }
   if (len === 0) {
      return '';
   }
   let res = '';
   while (arr[row][col] > 0) {
      res = s1[col - 1] + res;
      row -= 1;
      col -= 1;
   }
   return res;
};
console.log(findCommon(str1, str2));

आउटपुट

कंसोल पर आउटपुट निम्नलिखित है -

BABC

  1. जावास्क्रिप्ट में दो स्ट्रिंग्स के बीच असामान्य वर्ण ढूँढना और वापस करना

    समस्या हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो दो स्ट्रिंग्स में लेता है। हमारे फ़ंक्शन को वर्णों की एक नई स्ट्रिंग लौटानी चाहिए जो दोनों स्ट्रिंग्स के लिए सामान्य नहीं है। उदाहरण निम्नलिखित कोड है - const str1 = "xyab"; const str2 = "xzca"; const findUncommon = (str1 = '

  1. जावास्क्रिप्ट में लगातार सबसे लंबे समय तक जुड़ने का पता लगाना

    समस्या हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो संख्याओं के जोड़े की एक सरणी लेता है, एआर, पहले और एकमात्र तर्क के रूप में। प्रत्येक जोड़ी में, पहली संख्या हमेशा दूसरी संख्या से छोटी होती है। अब, हम एक युग्म (c, d) को परिभाषित करते हैं जो किसी अन्य युग्म (a, b) का अनुसरण कर सकता है यदि और

  1. पायथन में दो से अधिक स्ट्रिंग्स से सबसे लंबे समय तक सामान्य सबस्ट्रिंग कैसे खोजें?

    सबसे लंबे सामान्य सबस्ट्रिंग एल्गोरिथम के लिए सामान्य गतिशील प्रोग्रामिंग कार्यान्वयन O(nm) समय में चलता है। निम्नलिखित सबसे लंबे सामान्य सबस्ट्रिंग एल्गोरिथम का कार्यान्वयन है: उदाहरण def longest_common_substring(s1, s2):    m = [[0] * (1 + len(s2)) for i in xrange(1 + len(s1))]   &n